branch-updates
authorMatthias Klose <doko@debian.org>
Fri, 31 Aug 2018 09:56:41 +0000 (10:56 +0100)
committerMatthias Klose <doko@debian.org>
Fri, 31 Aug 2018 09:56:41 +0000 (10:56 +0100)
# DP: updates from the binutils-2.31 branch

# git diff 0860693812fff944ab0602e72b762a4a2078da5b 623310489442a9dcf74c90ed210b55a13d20bac8

Gbp-Pq: Name branch-updates.diff

86 files changed:
bfd/ChangeLog
bfd/development.sh
bfd/elf64-ppc.c
bfd/elfxx-x86.c
bfd/version.h
gas/ChangeLog
gas/config/tc-hppa.c
gas/config/tc-i386.c
gas/testsuite/gas/i386/evex-no-scale-32.d [new file with mode: 0644]
gas/testsuite/gas/i386/evex-no-scale-32.s [new file with mode: 0644]
gas/testsuite/gas/i386/evex-no-scale-64.d [new file with mode: 0644]
gas/testsuite/gas/i386/evex-no-scale-64.s [new file with mode: 0644]
gas/testsuite/gas/i386/i386.exp
gas/testsuite/gas/i386/xmmword.l
gas/testsuite/gas/i386/xmmword.s
gold/ChangeLog
gold/options.h
gold/symtab.cc
gold/target.h
gold/x86_64.cc
ld/ChangeLog
ld/po/bg.po
ld/testsuite/ld-aarch64/ifunc-1-local.d
ld/testsuite/ld-aarch64/ifunc-1.d
ld/testsuite/ld-aarch64/ifunc-2-local.d
ld/testsuite/ld-aarch64/ifunc-2.d
ld/testsuite/ld-aarch64/ifunc-21.d
ld/testsuite/ld-aarch64/ifunc-3a.d
ld/testsuite/ld-aarch64/ifunc-9.d
ld/testsuite/ld-elf/dummy.s [new file with mode: 0644]
ld/testsuite/ld-elf/linux-x86.S [new file with mode: 0644]
ld/testsuite/ld-elf/linux-x86.exp [new file with mode: 0644]
ld/testsuite/ld-elf/pr23428.c [new file with mode: 0644]
ld/testsuite/ld-elf/sec64k.exp
ld/testsuite/ld-i386/abs-iamcu.d
ld/testsuite/ld-i386/abs.d
ld/testsuite/ld-i386/i386.exp
ld/testsuite/ld-i386/pr12718.d
ld/testsuite/ld-i386/pr12921.d
ld/testsuite/ld-i386/pr23486a.d [new file with mode: 0644]
ld/testsuite/ld-i386/pr23486b.d [new file with mode: 0644]
ld/testsuite/ld-i386/property-3.r
ld/testsuite/ld-i386/property-4.r
ld/testsuite/ld-i386/property-5.r
ld/testsuite/ld-i386/property-x86-ibt3a.d
ld/testsuite/ld-i386/property-x86-ibt3b.d
ld/testsuite/ld-i386/property-x86-shstk3a.d
ld/testsuite/ld-i386/property-x86-shstk3b.d
ld/testsuite/ld-ifunc/ifunc.exp
ld/testsuite/ld-linkonce/zeroeh.ld
ld/testsuite/ld-powerpc/powerpc.exp
ld/testsuite/ld-powerpc/tlsopt5.d
ld/testsuite/ld-powerpc/tlsopt5.s
ld/testsuite/ld-powerpc/tlsopt5.wf
ld/testsuite/ld-scripts/print-memory-usage.t
ld/testsuite/ld-scripts/size-2.t
ld/testsuite/ld-x86-64/abs-k1om.d
ld/testsuite/ld-x86-64/abs-l1om.d
ld/testsuite/ld-x86-64/abs.d
ld/testsuite/ld-x86-64/pr12718.d
ld/testsuite/ld-x86-64/pr12921.d
ld/testsuite/ld-x86-64/pr23486a-x32.d [new file with mode: 0644]
ld/testsuite/ld-x86-64/pr23486a.d [new file with mode: 0644]
ld/testsuite/ld-x86-64/pr23486a.s [new file with mode: 0644]
ld/testsuite/ld-x86-64/pr23486b-x32.d [new file with mode: 0644]
ld/testsuite/ld-x86-64/pr23486b.d [new file with mode: 0644]
ld/testsuite/ld-x86-64/pr23486b.s [new file with mode: 0644]
ld/testsuite/ld-x86-64/property-3.r
ld/testsuite/ld-x86-64/property-4.r
ld/testsuite/ld-x86-64/property-5.r
ld/testsuite/ld-x86-64/property-x86-3.s
ld/testsuite/ld-x86-64/property-x86-ibt3a-x32.d
ld/testsuite/ld-x86-64/property-x86-ibt3a.d
ld/testsuite/ld-x86-64/property-x86-ibt3b-x32.d
ld/testsuite/ld-x86-64/property-x86-ibt3b.d
ld/testsuite/ld-x86-64/property-x86-shstk3a-x32.d
ld/testsuite/ld-x86-64/property-x86-shstk3a.d
ld/testsuite/ld-x86-64/property-x86-shstk3b-x32.d
ld/testsuite/ld-x86-64/property-x86-shstk3b.d
ld/testsuite/ld-x86-64/x86-64.exp
ld/testsuite/lib/ld-lib.exp
opcodes/ChangeLog
opcodes/i386-opc.h
opcodes/i386-opc.tbl
opcodes/i386-tbl.h
opcodes/s390-opc.txt

index 5ec906aa8e83fe89f7851cf0dbda74e21a0bffa7..7364bed2b531937bf9b9c1003a072e5f26871ee5 100644 (file)
@@ -1,8 +1,54 @@
+2018-08-12  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/23428
+       * elfxx-x86.c (_bfd_x86_elf_link_setup_gnu_properties): Don't
+       add X86_ISA_1_NEEDED property only if existing properties won't
+       be removed.
+
+2018-08-10  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/23486
+       * elfxx-x86.c (_bfd_x86_elf_merge_gnu_properties): Remove
+       GNU_PROPERTY_X86_ISA_1_USED if an input file doesn't have it.
+       (_bfd_x86_elf_link_setup_gnu_properties): Adding the
+       GNU_PROPERTY_X86_ISA_1_NEEDED, instead of
+       GNU_PROPERTY_X86_ISA_1_USED, property.
+
+2018-08-07  Alan Modra  <amodra@gmail.com>
+
+       * elf64-ppc.c (ppc64_elf_relocate_section): Don't skip first
+       instruction of __tls_get_addr_opt stub.
+       (plt_stub_size): Omit ALWAYS_EMIT_R2SAVE condition when
+       dealing with __tls_get_addr_opt stub.
+       (build_tls_get_addr_stub, ppc_size_one_stub): Likewise.
+
+2018-08-01  Alan Modra  <amodra@gmail.com>
+
+       * elf64-ppc.c (plt_stub_pad): Delay plt_stub_size call until needed.
+       (ppc_build_one_stub): Don't set stub_offset, instead assert that
+       it is sane.  Don't adjust stub_offset for alignment.  Adjust size
+       calculation.  Use "targ" temp when calculating offsets.
+       (ppc_size_one_stub): Set stub_offset here.  Use "targ" temp when
+       calculating offsets.  Adjust for alignment before setting
+       tls_get_addr_opt_bctrl.
+
+2018-07-23  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/23428
+       * elfxx-x86.c (_bfd_x86_elf_link_setup_gnu_properties): If the
+       separate code program header is needed, make sure that the first
+       read-only PT_LOAD segment has no code by adding a
+       GNU_PROPERTY_X86_ISA_1_USED note.
+
+2018-07-18  Nick Clifton  <nickc@redhat.com>
+
+       * development.sh: Set to true.
+
 2018-07-18  Nick Clifton  <nickc@redhat.com>
 
        2.31.1 Release point.
        * version.m4: Set to 2.31.1
-       * development.sh: Set to true.
+       * development.sh: Set to false.
        * configure: Regenerate.
        * po/bfd.pot: Regenerate.
 
index 918150f30b3ca835424412d744fd29d656002b56..27a7150e6ded073f53dd378a5a8a6da6ab286bf4 100644 (file)
@@ -16,4 +16,4 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # Controls whether to enable development-mode features by default.
-development=false
+development=true
index 45d81777eb7019379c53c987beaa89245b6a72bd..139ed1abcdabf6d21005ed950c6c40eb85a6e2f3 100644 (file)
@@ -10810,8 +10810,7 @@ plt_stub_size (struct ppc_link_hash_table *htab,
       && htab->params->tls_get_addr_opt)
     {
       size += 7 * 4;
-      if (ALWAYS_EMIT_R2SAVE
-         || stub_entry->stub_type == ppc_stub_plt_call_r2save)
+      if (stub_entry->stub_type == ppc_stub_plt_call_r2save)
        size += 6 * 4;
     }
   return size;
@@ -10829,7 +10828,7 @@ plt_stub_pad (struct ppc_link_hash_table *htab,
              bfd_vma plt_off)
 {
   int stub_align;
-  unsigned stub_size = plt_stub_size (htab, stub_entry, plt_off);
+  unsigned stub_size;
   bfd_vma stub_off = stub_entry->group->stub_sec->size;
 
   if (htab->params->plt_stub_align >= 0)
@@ -10841,6 +10840,7 @@ plt_stub_pad (struct ppc_link_hash_table *htab,
     }
 
   stub_align = 1 << -htab->params->plt_stub_align;
+  stub_size = plt_stub_size (htab, stub_entry, plt_off);
   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));
@@ -11055,8 +11055,7 @@ build_tls_get_addr_stub (struct ppc_link_hash_table *htab,
   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)
+  if (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;
@@ -11148,7 +11147,7 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
   struct ppc_link_hash_table *htab;
   bfd_byte *loc;
   bfd_byte *p;
-  bfd_vma dest, off;
+  bfd_vma targ, off;
   Elf_Internal_Rela *r;
   asection *plt;
 
@@ -11160,8 +11159,7 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
   if (htab == NULL)
     return FALSE;
 
-  /* Make a note of the offset within the stubs for this entry.  */
-  stub_entry->stub_offset = stub_entry->group->stub_sec->size;
+  BFD_ASSERT (stub_entry->stub_offset >= stub_entry->group->stub_sec->size);
   loc = stub_entry->group->stub_sec->contents + stub_entry->stub_offset;
 
   htab->stub_count[stub_entry->stub_type - 1] += 1;
@@ -11170,16 +11168,16 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
     case ppc_stub_long_branch:
     case ppc_stub_long_branch_r2off:
       /* Branches are relative.  This is where we are going to.  */
-      dest = (stub_entry->target_value
+      targ = (stub_entry->target_value
              + stub_entry->target_section->output_offset
              + stub_entry->target_section->output_section->vma);
-      dest += PPC64_LOCAL_ENTRY_OFFSET (stub_entry->other);
-      off = dest;
+      targ += PPC64_LOCAL_ENTRY_OFFSET (stub_entry->other);
 
       /* And this is where we are coming from.  */
-      off -= (stub_entry->stub_offset
-             + stub_entry->group->stub_sec->output_offset
-             + stub_entry->group->stub_sec->output_section->vma);
+      off = (stub_entry->stub_offset
+            + stub_entry->group->stub_sec->output_offset
+            + stub_entry->group->stub_sec->output_section->vma);
+      off = targ - off;
 
       p = loc;
       if (stub_entry->stub_type == ppc_stub_long_branch_r2off)
@@ -11226,7 +11224,7 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
            return FALSE;
          r->r_offset = p - 4 - stub_entry->group->stub_sec->contents;
          r->r_info = ELF64_R_INFO (0, R_PPC64_REL24);
-         r->r_addend = dest;
+         r->r_addend = targ;
          if (stub_entry->h != NULL)
            {
              struct elf_link_hash_entry **hashes;
@@ -11278,13 +11276,13 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
          return FALSE;
        }
 
-      dest = (stub_entry->target_value
+      targ = (stub_entry->target_value
              + stub_entry->target_section->output_offset
              + stub_entry->target_section->output_section->vma);
       if (stub_entry->stub_type != ppc_stub_plt_branch_r2off)
-       dest += PPC64_LOCAL_ENTRY_OFFSET (stub_entry->other);
+       targ += PPC64_LOCAL_ENTRY_OFFSET (stub_entry->other);
 
-      bfd_put_64 (htab->brlt->owner, dest,
+      bfd_put_64 (htab->brlt->owner, targ,
                  htab->brlt->contents + br_entry->offset);
 
       if (br_entry->iter == htab->stub_iteration)
@@ -11301,7 +11299,7 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
                               + htab->brlt->output_offset
                               + htab->brlt->output_section->vma);
              rela.r_info = ELF64_R_INFO (0, R_PPC64_RELATIVE);
-             rela.r_addend = dest;
+             rela.r_addend = targ;
 
              rl = htab->relbrlt->contents;
              rl += (htab->relbrlt->reloc_count++
@@ -11321,17 +11319,17 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
                             + htab->brlt->output_offset
                             + htab->brlt->output_section->vma);
              r->r_info = ELF64_R_INFO (0, R_PPC64_RELATIVE);
-             r->r_addend = dest;
+             r->r_addend = targ;
            }
        }
 
-      dest = (br_entry->offset
+      targ = (br_entry->offset
              + htab->brlt->output_offset
              + htab->brlt->output_section->vma);
 
-      off = (dest
-            - elf_gp (info->output_bfd)
-            - htab->sec_info[stub_entry->group->link_sec->id].toc_off);
+      off = (elf_gp (info->output_bfd)
+            + htab->sec_info[stub_entry->group->link_sec->id].toc_off);
+      off = targ - off;
 
       if (off + 0x80008000 > 0xffffffff || (off & 7) != 0)
        {
@@ -11354,7 +11352,7 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
          if (stub_entry->stub_type == ppc_stub_plt_branch_r2off)
            r[0].r_offset += 4;
          r[0].r_info = ELF64_R_INFO (0, R_PPC64_TOC16_DS);
-         r[0].r_addend = dest;
+         r[0].r_addend = targ;
          if (PPC_HA (off) != 0)
            {
              r[0].r_info = ELF64_R_INFO (0, R_PPC64_TOC16_HA);
@@ -11439,8 +11437,8 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
        }
 
       /* Now build the stub.  */
-      dest = stub_entry->plt_ent->plt.offset & ~1;
-      if (dest >= (bfd_vma) -2)
+      targ = stub_entry->plt_ent->plt.offset & ~1;
+      if (targ >= (bfd_vma) -2)
        abort ();
 
       plt = htab->elf.splt;
@@ -11453,12 +11451,11 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
          else
            plt = htab->pltlocal;
        }
+      targ += plt->output_offset + plt->output_section->vma;
 
-      dest += plt->output_offset + plt->output_section->vma;
-
-      off = (dest
-            - elf_gp (info->output_bfd)
-            - htab->sec_info[stub_entry->group->link_sec->id].toc_off);
+      off = (elf_gp (info->output_bfd)
+            + htab->sec_info[stub_entry->group->link_sec->id].toc_off);
+      off = targ - off;
 
       if (off + 0x80008000 > 0xffffffff || (off & 7) != 0)
        {
@@ -11473,15 +11470,6 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
          return FALSE;
        }
 
-      if (htab->params->plt_stub_align != 0)
-       {
-         unsigned pad = plt_stub_pad (htab, stub_entry, off);
-
-         stub_entry->group->stub_sec->size += pad;
-         stub_entry->stub_offset = stub_entry->group->stub_sec->size;
-         loc += pad;
-       }
-
       r = NULL;
       if (info->emitrelocations)
        {
@@ -11496,7 +11484,7 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
          r[0].r_offset = loc - stub_entry->group->stub_sec->contents;
          if (bfd_big_endian (info->output_bfd))
            r[0].r_offset += 2;
-         r[0].r_addend = dest;
+         r[0].r_addend = targ;
        }
       if (stub_entry->h != NULL
          && (stub_entry->h == htab->tls_get_addr_fd
@@ -11515,7 +11503,7 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
       return FALSE;
     }
 
-  stub_entry->group->stub_sec->size += p - loc;
+  stub_entry->group->stub_sec->size = stub_entry->stub_offset + (p - loc);
 
   if (htab->params->emit_stub_syms)
     {
@@ -11567,7 +11555,7 @@ ppc_size_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
   struct ppc_stub_hash_entry *stub_entry;
   struct bfd_link_info *info;
   struct ppc_link_hash_table *htab;
-  bfd_vma off;
+  bfd_vma targ, off;
   int size;
 
   /* Massage our args to the form they really have.  */
@@ -11578,6 +11566,9 @@ ppc_size_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
   if (htab == NULL)
     return FALSE;
 
+  /* Make a note of the offset within the stubs for this entry.  */
+  stub_entry->stub_offset = stub_entry->group->stub_sec->size;
+
   if (stub_entry->h != NULL
       && stub_entry->h->save_res
       && stub_entry->h->elf.root.type == bfd_link_hash_defined
@@ -11594,8 +11585,8 @@ ppc_size_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
       || stub_entry->stub_type == ppc_stub_plt_call_r2save)
     {
       asection *plt;
-      off = stub_entry->plt_ent->plt.offset & ~(bfd_vma) 1;
-      if (off >= (bfd_vma) -2)
+      targ = stub_entry->plt_ent->plt.offset & ~(bfd_vma) 1;
+      if (targ >= (bfd_vma) -2)
        abort ();
       plt = htab->elf.splt;
       if (!htab->elf.dynamic_sections_created
@@ -11607,23 +11598,30 @@ ppc_size_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
          else
            plt = htab->pltlocal;
        }
-      off += (plt->output_offset
-             + plt->output_section->vma
-             - elf_gp (info->output_bfd)
-             - htab->sec_info[stub_entry->group->link_sec->id].toc_off);
+      targ += plt->output_offset + plt->output_section->vma;
+
+      off = (elf_gp (info->output_bfd)
+            + htab->sec_info[stub_entry->group->link_sec->id].toc_off);
+      off = targ - off;
+
+      if (htab->params->plt_stub_align != 0)
+       {
+         unsigned pad = plt_stub_pad (htab, stub_entry, off);
+
+         stub_entry->group->stub_sec->size += pad;
+         stub_entry->stub_offset = stub_entry->group->stub_sec->size;
+       }
 
       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->stub_type == ppc_stub_plt_call_r2save)
        stub_entry->group->tls_get_addr_opt_bctrl
-         = stub_entry->group->stub_sec->size + size - 5 * 4;
+         = stub_entry->stub_offset + size - 5 * 4;
 
-      if (htab->params->plt_stub_align)
-       size += plt_stub_pad (htab, stub_entry, off);
       if (info->emitrelocations)
        {
          stub_entry->group->stub_sec->reloc_count
@@ -11642,12 +11640,12 @@ ppc_size_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
       bfd_vma r2off = 0;
       bfd_vma local_off = 0;
 
-      off = (stub_entry->target_value
-            + stub_entry->target_section->output_offset
-            + stub_entry->target_section->output_section->vma);
-      off -= (stub_entry->group->stub_sec->size
-             + stub_entry->group->stub_sec->output_offset
-             + stub_entry->group->stub_sec->output_section->vma);
+      targ = (stub_entry->target_value
+             + stub_entry->target_section->output_offset
+             + stub_entry->target_section->output_section->vma);
+      off = (stub_entry->stub_offset
+            + stub_entry->group->stub_sec->output_offset
+            + stub_entry->group->stub_sec->output_section->vma);
 
       /* Reset the stub type from the plt variant in case we now
         can reach with a shorter stub.  */
@@ -11668,8 +11666,9 @@ ppc_size_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
            size += 4;
          if (PPC_LO (r2off) != 0)
            size += 4;
-         off -= size - 4;
+         off += size - 4;
        }
+      off = targ - off;
 
       local_off = PPC64_LOCAL_ENTRY_OFFSET (stub_entry->other);
 
@@ -11709,11 +11708,12 @@ ppc_size_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
            }
 
          stub_entry->stub_type += ppc_stub_plt_branch - ppc_stub_long_branch;
-         off = (br_entry->offset
-                + htab->brlt->output_offset
-                + htab->brlt->output_section->vma
-                - elf_gp (info->output_bfd)
-                - htab->sec_info[stub_entry->group->link_sec->id].toc_off);
+         targ = (br_entry->offset
+                 + htab->brlt->output_offset
+                 + htab->brlt->output_section->vma);
+         off = (elf_gp (info->output_bfd)
+                + htab->sec_info[stub_entry->group->link_sec->id].toc_off);
+         off = targ - off;
 
          if (info->emitrelocations)
            {
@@ -14877,10 +14877,13 @@ ppc64_elf_relocate_section (bfd *output_bfd,
              addend = 0;
              reloc_dest = DEST_STUB;
 
-             if ((stub_entry->stub_type == ppc_stub_plt_call
+             if (((stub_entry->stub_type == ppc_stub_plt_call
+                   && ALWAYS_EMIT_R2SAVE)
                   || stub_entry->stub_type == ppc_stub_plt_call_r2save)
-                 && (ALWAYS_EMIT_R2SAVE
-                     || stub_entry->stub_type == ppc_stub_plt_call_r2save)
+                 && !(h != NULL
+                      && (h == htab->tls_get_addr_fd
+                          || h == htab->tls_get_addr)
+                      && htab->params->tls_get_addr_opt)
                  && rel + 1 < relend
                  && rel[1].r_offset == rel->r_offset + 4
                  && ELF64_R_TYPE (rel[1].r_info) == R_PPC64_TOCSAVE)
index a2497aab8630a0fd675f515577f5e89e487fb4ae..2d8f7b640b5b16be9e71c7e300402f4f22f05cc8 100644 (file)
@@ -2407,12 +2407,27 @@ _bfd_x86_elf_merge_gnu_properties (struct bfd_link_info *info,
   switch (pr_type)
     {
     case GNU_PROPERTY_X86_ISA_1_USED:
+      if (aprop == NULL || bprop == NULL)
+       {
+         /* Only one of APROP and BPROP can be NULL.  */
+         if (aprop != NULL)
+           {
+             /* Remove this property since the other input file doesn't
+                have it.  */
+             aprop->pr_kind = property_remove;
+             updated = TRUE;
+           }
+         break;
+       }
+      goto or_property;
+
     case GNU_PROPERTY_X86_ISA_1_NEEDED:
       if (aprop != NULL && bprop != NULL)
        {
+or_property:
          number = aprop->u.number;
          aprop->u.number = number | bprop->u.number;
-         /* Remove the property if ISA bits are empty.  */
+         /* Remove the property if all bits are empty.  */
          if (aprop->u.number == 0)
            {
              aprop->pr_kind = property_remove;
@@ -2428,14 +2443,14 @@ _bfd_x86_elf_merge_gnu_properties (struct bfd_link_info *info,
            {
              if (aprop->u.number == 0)
                {
-                 /* Remove APROP if ISA bits are empty.  */
+                 /* Remove APROP if all bits are empty.  */
                  aprop->pr_kind = property_remove;
                  updated = TRUE;
                }
            }
          else
            {
-             /* Return TRUE if APROP is NULL and ISA bits of BPROP
+             /* Return TRUE if APROP is NULL and all bits of BPROP
                 aren't empty to indicate that BPROP should be added
                 to ABFD.  */
              updated = bprop->u.number != 0;
@@ -2524,6 +2539,7 @@ _bfd_x86_elf_link_setup_gnu_properties
   const struct elf_backend_data *bed;
   unsigned int class_align = ABI_64_P (info->output_bfd) ? 3 : 2;
   unsigned int got_align;
+  bfd_boolean has_text = FALSE;
 
   features = 0;
   if (info->ibt)
@@ -2538,24 +2554,75 @@ _bfd_x86_elf_link_setup_gnu_properties
     if (bfd_get_flavour (pbfd) == bfd_target_elf_flavour
        && bfd_count_sections (pbfd) != 0)
       {
+       if (!has_text)
+         {
+           /* Check if there is no non-empty text section.  */
+           sec = bfd_get_section_by_name (pbfd, ".text");
+           if (sec != NULL && sec->size != 0)
+             has_text = TRUE;
+         }
+
        ebfd = pbfd;
 
        if (elf_properties (pbfd) != NULL)
          break;
       }
 
-  if (ebfd != NULL && features)
+  bed = get_elf_backend_data (info->output_bfd);
+
+  htab = elf_x86_hash_table (info, bed->target_id);
+  if (htab == NULL)
+    return pbfd;
+
+  if (ebfd != NULL)
     {
-      /* 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;
+      prop = NULL;
+      if (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;
+       }
+      else if (has_text
+              && elf_tdata (info->output_bfd)->o->build_id.sec == NULL
+              && !htab->elf.dynamic_sections_created
+              && !info->traditional_format
+              && (info->output_bfd->flags & D_PAGED) != 0
+              && info->separate_code)
+       {
+         /* If the separate code program header is needed, make sure
+            that the first read-only PT_LOAD segment has no code by
+            adding a GNU_PROPERTY_X86_ISA_1_NEEDED note.  */
+         elf_property_list *list;
+         bfd_boolean need_property = TRUE;
+
+         for (list = elf_properties (ebfd); list; list = list->next)
+           switch (list->property.pr_type)
+             {
+             case GNU_PROPERTY_STACK_SIZE:
+             case GNU_PROPERTY_NO_COPY_ON_PROTECTED:
+             case GNU_PROPERTY_X86_ISA_1_NEEDED:
+               /* These properties won't be removed during merging.  */
+               need_property = FALSE;
+               break;
+             }
+
+         if (need_property)
+           {
+             prop = _bfd_elf_get_property (ebfd,
+                                           GNU_PROPERTY_X86_ISA_1_NEEDED,
+                                           4);
+             prop->u.number = GNU_PROPERTY_X86_ISA_1_486;
+             prop->pr_kind = property_number;
+           }
+       }
 
       /* Create the GNU property note section if needed.  */
-      if (pbfd == NULL)
+      if (prop != NULL && pbfd == NULL)
        {
          sec = bfd_make_section_with_flags (ebfd,
                                             NOTE_GNU_PROPERTY_SECTION_NAME,
@@ -2581,12 +2648,6 @@ error_alignment:
 
   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;
 
index 222d2e62c393455ef81d7ce62d269533d3908c08..234802c7937baf2dbdf7796731a2c2474b472035 100644 (file)
@@ -16,7 +16,7 @@
 
    In releases, the date is not included in either version strings or
    sonames.  */
-#define BFD_VERSION_DATE 20180718
+#define BFD_VERSION_DATE 20180814
 #define BFD_VERSION @bfd_version@
 #define BFD_VERSION_STRING  @bfd_version_package@ @bfd_version_string@
 #define REPORT_BUGS_TO @report_bugs_to@
index bb4541900dd79243e2e8931b68cb4cdbe7ef4637..fe0d12a28f43c098fc0a865640134f20b649bcce 100644 (file)
@@ -1,3 +1,39 @@
+2018-08-10  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * testsuite/gas/i386/evex-no-scale.s: Removed.
+       * testsuite/gas/i386/evex-no-scale-32.d: Don't use
+       evex-no-scale.s.
+       * testsuite/gas/i386/evex-no-scale-64.d: Likewise.
+       * testsuite/gas/i386/evex-no-scale-32.s: New file.
+       * testsuite/gas/i386/evex-no-scale-64.s: Likewise.
+
+2018-08-10  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * testsuite/gas/i386/i386.exp: Run evex-no-scale-32 and
+       evex-no-scale-64 only for ELF targets.
+
+2018-07-31  Jan Beulich  <jbeulich@suse.com>
+
+       PR gas/23465
+       * config/tc-i386.c (output_disp): Restrict scaling.
+       * testsuite/gas/i386/evex-no-scale.s,
+         testsuite/gas/i386/evex-no-scale-32.d
+         testsuite/gas/i386/evex-no-scale-64.d: New.
+       * testsuite/gas/i386/i386.exp: Run new tests.
+
+2018-07-30  John David Anglin  <danglin@gcc.gnu.org>
+
+       * config/tc-hppa.c: Include "struc-symbol.h".
+       (pa_build_unwind_subspace): Use call_info->start_symbol->sy_frag
+       instead of frag_now for local symbol replacement.
+
+2018-07-18  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR gas/23418
+       * testsuite/gas/i386/xmmword.s: Add tests for vcvtps2qq,
+       vcvtps2uqq, vcvttps2qq and vcvttps2uqq.
+       * testsuite/gas/i386/xmmword.l: Updated.
+
 2018-07-18  Nick Clifton  <nickc@redhat.com>
 
        2.31.1 Release point.
index e69fdb2b397cf7563edab6fddbb652d8c4155917..ccae68cb4060688e282f4662065fe2a380fe80df 100644 (file)
@@ -23,6 +23,7 @@
 
 #include "as.h"
 #include "safe-ctype.h"
+#include "struc-symbol.h"
 #include "subsegs.h"
 #include "dw2gencfi.h"
 
@@ -5989,7 +5990,8 @@ pa_build_unwind_subspace (struct call_info *call_info)
   else
     {
       symbolP = symbol_new (name, now_seg,
-                           S_GET_VALUE (call_info->start_symbol), frag_now);
+                           S_GET_VALUE (call_info->start_symbol),
+                           call_info->start_symbol->sy_frag);
       gas_assert (symbolP);
       S_CLEAR_EXTERNAL (symbolP);
       symbol_table_insert (symbolP);
index 2d20f1cae9470f57c5529aa6016373396c79f4be..bd179c13aff71fbeb60b9ac353ebc6bbc0730fea 100644 (file)
@@ -7857,7 +7857,8 @@ output_disp (fragS *insn_start_frag, offsetT insn_start_off)
              int size = disp_size (n);
              offsetT val = i.op[n].disps->X_add_number;
 
-             val = offset_in_range (val >> i.memshift, size);
+             val = offset_in_range (val >> (size == 1 ? i.memshift : 0),
+                                    size);
              p = frag_more (size);
              md_number_to_chars (p, val, size);
            }
diff --git a/gas/testsuite/gas/i386/evex-no-scale-32.d b/gas/testsuite/gas/i386/evex-no-scale-32.d
new file mode 100644 (file)
index 0000000..0a2860d
--- /dev/null
@@ -0,0 +1,12 @@
+#objdump: -dw
+#name: ix86 EVEX no disp scaling
+
+.*: +file format .*
+
+Disassembly of section .text:
+
+0+ <disp>:
+ +[a-f0-9]+:   62 f1 7c 48 28 04 05 40 00 00 00        vmovaps 0x40\(,%eax,1\),%zmm0
+ +[a-f0-9]+:   62 f1 7c 48 28 04 25 40 00 00 00        vmovaps 0x40\(,%eiz,1\),%zmm0
+ +[a-f0-9]+:   62 f1 7c 48 28 05 40 00 00 00   vmovaps 0x40,%zmm0
+ +[a-f0-9]+:   67 62 f1 7c 48 28 06 40 00      vmovaps 0x40,%zmm0
diff --git a/gas/testsuite/gas/i386/evex-no-scale-32.s b/gas/testsuite/gas/i386/evex-no-scale-32.s
new file mode 100644 (file)
index 0000000..e28c73f
--- /dev/null
@@ -0,0 +1,7 @@
+       .allow_index_reg
+       .text
+disp:
+       vmovaps 64(,%eax), %zmm0
+       vmovaps 64(,%eiz), %zmm0
+       vmovaps 64, %zmm0
+       addr16 vmovaps 64, %zmm0
diff --git a/gas/testsuite/gas/i386/evex-no-scale-64.d b/gas/testsuite/gas/i386/evex-no-scale-64.d
new file mode 100644 (file)
index 0000000..d52d947
--- /dev/null
@@ -0,0 +1,14 @@
+#objdump: -dw
+#name: x86-64 EVEX no disp scaling
+
+.*: +file format .*
+
+Disassembly of section .text:
+
+0+ <disp>:
+ +[a-f0-9]+:   62 f1 7c 48 28 05 00 fc ff ff   vmovaps -0x400\(%rip\),%zmm0        # .*
+ +[a-f0-9]+:   62 f1 7c 48 28 04 05 40 00 00 00        vmovaps 0x40\(,%rax,1\),%zmm0
+ +[a-f0-9]+:   62 f1 7c 48 28 04 25 40 00 00 00        vmovaps 0x40,%zmm0
+ +[a-f0-9]+:   67 62 f1 7c 48 28 04 05 40 00 00 00     vmovaps 0x40\(,%eax,1\),%zmm0
+ +[a-f0-9]+:   67 62 f1 7c 48 28 04 25 40 00 00 00     addr32 vmovaps 0x40,%zmm0
+ +[a-f0-9]+:   62 f1 7c 48 28 04 25 40 00 00 00        vmovaps 0x40,%zmm0
diff --git a/gas/testsuite/gas/i386/evex-no-scale-64.s b/gas/testsuite/gas/i386/evex-no-scale-64.s
new file mode 100644 (file)
index 0000000..bc3749c
--- /dev/null
@@ -0,0 +1,9 @@
+       .allow_index_reg
+       .text
+disp:
+       vmovaps -1024(%rip), %zmm0
+       vmovaps 64(,%rax), %zmm0
+       vmovaps 64(,%riz), %zmm0
+       vmovaps 64(,%eax), %zmm0
+       vmovaps 64(,%eiz), %zmm0
+       vmovaps 64, %zmm0
index 9cc927a96269e8fc23c17e9dacb1af38b99b6228..39878624770f8deb6815041a8bdbb5882e84e411 100644 (file)
@@ -525,6 +525,8 @@ if [expr ([istarget "i*86-*-*"] ||  [istarget "x86_64-*-*"]) && [gas_32_check]]
        run_dump_test "nop-5"
        run_dump_test "nop-6"
 
+       run_dump_test "evex-no-scale-32"
+
        if { [gas_64_check] } then {
            run_dump_test "att-regs"
            run_dump_test "intel-regs"
@@ -1017,6 +1019,8 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_64_check]] t
        run_dump_test "x86-64-nop-4"
        run_dump_test "x86-64-nop-5"
        run_dump_test "x86-64-nop-6"
+
+       run_dump_test "evex-no-scale-64"
     }
 
     set ASFLAGS "$old_ASFLAGS"
index ce3af8d1501a30e12336c6759eba0a4083732463..7d25cb3de2ee9b78c68f34d78b21605cabb8ea2c 100644 (file)
@@ -99,3 +99,7 @@
 .*:127: Error: .* `vpmovzxwq'
 .*:128: Error: .* `vpmovzxwq'
 .*:129: Error: .* `vpmovzxwq'
+.*:131: Error: .* `vcvtps2qq'
+.*:132: Error: .* `vcvtps2uqq'
+.*:133: Error: .* `vcvttps2qq'
+.*:134: Error: .* `vcvttps2uqq'
index 47d2d8d595807001705940dd7e91697d61f3228b..ffe7aca3cb1200ac5f6849e1a41110b084459db1 100644 (file)
@@ -127,3 +127,8 @@ xmmword:
        vpmovzxwq       xmm0{k7}, xmmword ptr [eax]
        vpmovzxwq       ymm0, xmmword ptr [eax]
        vpmovzxwq       ymm0{k7}, xmmword ptr [eax]
+
+       vcvtps2qq       xmm0, xmmword ptr [rax]
+       vcvtps2uqq      xmm0, xmmword ptr [rax]
+       vcvttps2qq      xmm0, xmmword ptr [rax]
+       vcvttps2uqq     xmm0, xmmword ptr [rax]
index 18af5e69b193a5c7e8f50255def046404a97538f..cf998d901af4a9374c6c165ad4d115c049a5d091 100644 (file)
@@ -1,3 +1,15 @@
+2018-08-06  Cary Coutant  <ccoutant@gmail.com>
+
+       PR gold/23455
+       * options.h (General_options): Add --warn-drop-version option.
+       * symtab.cc (Symbol_table::set_dynsym_indexes): Check it.
+
+2018-08-06  Cary Coutant  <ccoutant@gmail.com>
+
+       * target.h (Sized_target::record_gnu_property): Change first two
+       parameters to unsigned int.
+       * x86_64.cc (Target_x86_64::record_gnu_property): Likewise.
+
 2018-07-18  Nick Clifton  <nickc@redhat.com>
 
        2.31.1 Release point.
index 98d6be8009248f3f4bbf9c365f96644bbc119c77..11054981c9ab6a153fa4ed47cbf4c70bbbc97720 100644 (file)
@@ -1361,6 +1361,10 @@ class General_options
   DEFINE_bool_ignore(warn_constructors, options::TWO_DASHES, '\0',
                     N_("Ignored"), N_("Ignored"));
 
+  DEFINE_bool(warn_drop_version, options::TWO_DASHES, '\0', false,
+             N_("Warn when discarding version information"),
+             N_("Do not warn when discarding version information"));
+
   DEFINE_bool(warn_execstack, options::TWO_DASHES, '\0', false,
              N_("Warn if the stack is executable"),
              N_("Do not warn if the stack is executable"));
index aa7644156f5eca85ad908fb68c974a641277709c..759e0d0222f38cd17905d35555f223e4e8bc1e75 100644 (file)
@@ -2623,11 +2623,12 @@ Symbol_table::set_dynsym_indexes(unsigned int index,
                versions->record_version(this, dynpool, sym);
              else
                {
-                 gold_warning(_("discarding version information for "
-                                "%s@%s, defined in unused shared library %s "
-                                "(linked with --as-needed)"),
-                              sym->name(), sym->version(),
-                              sym->object()->name().c_str());
+                 if (parameters->options().warn_drop_version())
+                   gold_warning(_("discarding version information for "
+                                  "%s@%s, defined in unused shared library %s "
+                                  "(linked with --as-needed)"),
+                                sym->name(), sym->version(),
+                                sym->object()->name().c_str());
                  sym->clear_version();
                }
            }
index bb312067b5f2a621ab8abaa4de819b0e9bc20c33..bbc87396f62f2d795178a3b9e6e0c5ea2ac69f89 100644 (file)
@@ -1147,7 +1147,8 @@ class Sized_target : public Target
   // Record a target-specific program property in the .note.gnu.property
   // section.
   virtual void
-  record_gnu_property(int, int, size_t, const unsigned char*, const Object*)
+  record_gnu_property(unsigned int, unsigned int, size_t,
+                     const unsigned char*, const Object*)
   { }
 
   // Merge the target-specific program properties from the current object.
index 27f273d64b30b49e4fa16e99ab4f1a1a43c38ae5..9d742f6f1320cf0b249eddb08a4987fe7fb7e4c6 100644 (file)
@@ -1307,7 +1307,8 @@ class Target_x86_64 : public Sized_target<size, false>
   // Record a target-specific program property in the .note.gnu.property
   // section.
   void
-  record_gnu_property(int, int, size_t, const unsigned char*, const Object*);
+  record_gnu_property(unsigned int, unsigned int, size_t,
+                     const unsigned char*, const Object*);
 
   // Merge the target-specific program properties from the current object.
   void
@@ -1579,7 +1580,7 @@ Target_x86_64<size>::rela_irelative_section(Layout* layout)
 template<int size>
 void
 Target_x86_64<size>::record_gnu_property(
-    int, int pr_type,
+    unsigned int, unsigned int pr_type,
     size_t pr_datasz, const unsigned char* pr_data,
     const Object* object)
 {
index c07e442c84a17e7f576919005007fc29e2b0c440..fb979d737d331ab08b88aa651eb1e5cb39804299 100644 (file)
@@ -1,3 +1,101 @@
+2018-08-12  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * testsuite/ld-x86-64/pr23486b.d: Swap pr23486a.s and pr23486a.s.
+
+2018-08-12  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/23428
+       * testsuite/ld-elf/dummy.s: New file.
+       * testsuite/ld-elf/linux-x86.S: Add X86_FEATURE_1_AND property.
+       * testsuite/ld-elf/linux-x86.exp: Add dummy.s to pr23428.
+
+2018-08-10  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/23486
+       * testsuite/ld-i386/i386.exp: Run PR ld/23486 tests.
+       * testsuite/ld-x86-64/x86-64.exp: Likewise.
+       * testsuite/ld-i386/pr23486a.d: New file.
+       * testsuite/ld-i386/pr23486b.d: Likewise.
+       * testsuite/ld-x86-64/pr23486a-x32.d: Likewise.
+       * testsuite/ld-x86-64/pr23486a.d: Likewise.
+       * testsuite/ld-x86-64/pr23486a.s: Likewise.
+       * testsuite/ld-x86-64/pr23486b-x32.d: Likewise.
+       * testsuite/ld-x86-64/pr23486b.d: Likewise.
+       * testsuite/ld-x86-64/pr23486b.s: Likewise.
+       * testsuite/ld-i386/property-3.r: Remove "x86 ISA used".
+       * testsuite/ld-i386/property-4.r: Likewise.
+       * testsuite/ld-i386/property-5.r: Likewise.
+       * testsuite/ld-i386/property-x86-ibt3a.d: Likewise.
+       * testsuite/ld-i386/property-x86-ibt3b.d: Likewise.
+       * testsuite/ld-i386/property-x86-shstk3a.d: Likewise.
+       * testsuite/ld-i386/property-x86-shstk3b.d: Likewise.
+       * testsuite/ld-x86-64/property-3.r: Likewise.
+       * testsuite/ld-x86-64/property-4.r: Likewise.
+       * testsuite/ld-x86-64/property-5.r: Likewise.
+       * testsuite/ld-x86-64/property-x86-ibt3a-x32.d: Likewise.
+       * testsuite/ld-x86-64/property-x86-ibt3a.d: Likewise.
+       * testsuite/ld-x86-64/property-x86-ibt3b-x32.d: Likewise.
+       * testsuite/ld-x86-64/property-x86-ibt3b.d: Likewise.
+       * testsuite/ld-x86-64/property-x86-shstk3a-x32.d: Likewise.
+       * testsuite/ld-x86-64/property-x86-shstk3a.d: Likewise.
+       * testsuite/ld-x86-64/property-x86-shstk3b-x32.d: Likewise.
+       * testsuite/ld-x86-64/property-x86-shstk3b.d: Likewise.
+
+2018-08-10  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * testsuite/ld-x86-64/property-x86-3.s: Use ".p2align 2" to
+       align .note.gnu.property section if __64_bit__ is undefined.
+
+2018-08-01  Alan Modra  <amodra@gmail.com>
+
+       * testsuite/ld-powerpc/powerpc.exp: Run tlsopt5 with hash-style
+       specified.
+
+2018-08-01  Alan Modra  <amodra@gmail.com>
+
+       * testsuite/ld-powerpc/powerpc.exp: Run tlsopt5 with plt alignment.
+       * testsuite/ld-powerpc/tlsopt5.s: Add extra call.
+       * testsuite/ld-powerpc/tlsopt5.wf: Adjust expected output.
+       * testsuite/ld-powerpc/tlsopt5.d: Likewise.
+
+2018-08-07  Nick Clifton  <nickc@redhat.com>
+
+       * po/bg.po: Updated Bulgarian translation.
+
+2018-08-01  Roland McGrath  <mcgrathr@google.com>
+
+       * testsuite/ld-aarch64/ifunc-1-local.d: Adjust regexps to match
+       the offsets emitted by aarch64-elf configurations.
+       * testsuite/ld-aarch64/ifunc-1.d: Likewise.
+       * testsuite/ld-aarch64/ifunc-2-local.d: Likewise.
+       * testsuite/ld-aarch64/ifunc-2.d: Likewise.
+       * testsuite/ld-aarch64/ifunc-21.d: Likewise.
+       * testsuite/ld-aarch64/ifunc-3a.d: Likewise.
+
+2018-07-23  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/23428
+       * testsuite/ld-elf/linux-x86.S: New file.
+       * testsuite/ld-elf/linux-x86.exp: Likewise.
+       * testsuite/ld-elf/pr23428.c: Likewise.
+       * testsuite/ld-elf/sec64k.exp: Pass "-z noseparate-code" to ld
+       for Linux/x86 targets.
+       * testsuite/ld-i386/abs-iamcu.d: Likewise.
+       * testsuite/ld-i386/abs.d: Likewise.
+       * testsuite/ld-i386/pr12718.d: Likewise.
+       * testsuite/ld-i386/pr12921.d: Likewise.
+       * testsuite/ld-x86-64/abs-k1om.d: Likewise.
+       * testsuite/ld-x86-64/abs-l1om.d: Likewise.
+       * testsuite/ld-x86-64/abs.d: Likewise.
+       * testsuite/ld-x86-64/pr12718.d: Likewise.
+       * testsuite/ld-x86-64/pr12921.d: Likewise.
+       * testsuite/ld-linkonce/zeroeh.ld: Discard .note.gnu.property
+       section.
+       * testsuite/ld-scripts/print-memory-usage.t: Likewise.
+       * testsuite/ld-scripts/size-2.t: Likewise.
+       * testsuite/lib/ld-lib.exp (run_ld_link_exec_tests): Use ld to
+       create executable if language is "asm".
+
 2018-07-18  Nick Clifton  <nickc@redhat.com>
 
        2.31.1 Release point.
index 5e8e81881860f9000e56da92163dbe9d35af6e4e..bf6ecd9b6169d10ed998685577f75f8c9d9d6b43 100644 (file)
@@ -13,7 +13,7 @@ msgstr ""
 "Project-Id-Version: ld 2.30.90\n"
 "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
 "POT-Creation-Date: 2018-06-24 19:43+0100\n"
-"PO-Revision-Date: 2018-06-28 22:58+0300\n"
+"PO-Revision-Date: 2018-07-26 20:34+0300\n"
 "Last-Translator: Румен Петров <transl@roumenpetrov.info>\n"
 "Language-Team: Bulgarian <dict@ludost.net>\n"
 "Language: bg\n"
@@ -33,7 +33,7 @@ msgstr "%X%P: cref_hash_lookup не успя: %E\n"
 
 #: ldcref.c:186
 msgid "%X%P: cref alloc failed: %E\n"
-msgstr "%X%P: Ð¿Ñ\80опадна Ð·Ð°Ð´ÐµÐ»Ñ\8fне(на Ð¿Ð°Ð¼ÐµÑ\82) Ð·Ð° cref: %E\n"
+msgstr "%X%P: Ð½Ðµ Ñ\83Ñ\81пÑ\8f Ð·Ð°Ð´ÐµÐ»Ñ\8fнеÑ\82о Ð½Ð° Ð¿Ð°Ð¼ÐµÑ\82 Ð² cref: %E\n"
 
 #: ldcref.c:371
 #, c-format
@@ -62,7 +62,7 @@ msgstr "Без имена\n"
 
 #: ldcref.c:413 ldcref.c:565
 msgid "%P: symbol `%pT' missing from main hash table\n"
-msgstr "%P: Ð¸Ð¼Ðµ '%pT' Ð»Ð¸Ð¿Ñ\81ва Ð² Ð³Ð»Ð°Ð²Ð½Ð°Ñ\82а Ñ\85еÑ\88\82аблиÑ\86а\n"
+msgstr "%P: Ð² Ð³Ð»Ð°Ð²Ð½Ð¸Ñ\8f Ñ\80еÑ\87ник Ð»Ð¸Ð¿Ñ\81ва Ð¸Ð¼ÐµÑ\82о '%pT'\n"
 
 #: ldcref.c:517 ldcref.c:628 ldmain.c:1211 ldmisc.c:335 pe-dll.c:715
 #: pe-dll.c:1296 pe-dll.c:1417 pe-dll.c:1535 earm_wince_pe.c:1430
@@ -87,7 +87,7 @@ msgstr "%X%P: %C: забранено е кръстосана отпратка о
 
 #: ldctor.c:83
 msgid "%X%P: different relocs used in set %s\n"
-msgstr "%X%P: различни \"преместванията\" се използват в множеството %s\n"
+msgstr "%X%P: различни \"премествания\" се използват в набора %s\n"
 
 #: ldctor.c:101
 msgid "%X%P: different object file formats composing set %s\n"
@@ -103,7 +103,7 @@ msgstr "%X%P: раздел %s не поддържа преместване %s з
 
 #: ldctor.c:321
 msgid "%X%P: unsupported size %d for set %s\n"
-msgstr "%X%P: Ð½ÐµÐ¿Ð¾Ð´Ð´Ñ\8aÑ\80жан Ñ\80азмеÑ\80 %d Ð·Ð° Ð¼Ð½Ð¾Ð¶ÐµÑ\81Ñ\82воÑ\82о %s\n"
+msgstr "%X%P: Ð½ÐµÐ¿Ð¾Ð´Ð´Ñ\8aÑ\80жан Ñ\80азмеÑ\80 %d Ð·Ð° Ð½Ð°Ð±Ð¾Ñ\80 %s\n"
 
 #: ldctor.c:344
 msgid ""
@@ -202,7 +202,7 @@ msgstr "%F%P:%pS не може да се върне обратно брояч н
 
 #: ldexp.c:1167
 msgid "%F%P:%s: hash creation failed\n"
-msgstr "%F%P:%s: Ð¿Ñ\80опадна създаването на хеш\n"
+msgstr "%F%P:%s: Ð½Ðµ Ñ\83Ñ\81пÑ\8f създаването на хеш\n"
 
 #: ldexp.c:1519 ldexp.c:1545 ldexp.c:1605
 msgid "%F%P:%pS: nonconstant expression for %s\n"
@@ -210,7 +210,7 @@ msgstr "%F%P:%pS: не е константен изразът за %s\n"
 
 #: ldexp.c:1631 ldlang.c:1234 ldlang.c:3187 ldlang.c:7174
 msgid "%F%P: can not create hash table: %E\n"
-msgstr "%F%P: Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñ\81е Ñ\81Ñ\8aздаде Ñ\85еÑ\88\82аблиÑ\86аÑ\82а: %E\n"
+msgstr "%F%P: Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñ\81е Ñ\81Ñ\8aздаде Ñ\80еÑ\87ник: %E\n"
 
 #: ldfile.c:132 eaarch64cloudabi.c:656 eaarch64cloudabib.c:656
 #: eaarch64elf.c:656 eaarch64elf32.c:656 eaarch64elf32b.c:656
@@ -286,12 +286,12 @@ msgstr "%F%P: не може да се създаде хеш-таблицата:
 #: eshlelf_vxworks.c:370 ev850.c:387 ev850_rh850.c:387 exgateelf.c:341
 #, c-format
 msgid "attempt to open %s failed\n"
-msgstr "опита да се отвори %s не успя\n"
+msgstr "опитът да се отвори %s не успя\n"
 
 #: ldfile.c:134
 #, c-format
 msgid "attempt to open %s succeeded\n"
-msgstr "опита да се отвори %s успя\n"
+msgstr "опитът да се отвори %s успя\n"
 
 #: ldfile.c:140
 msgid "%F%P: invalid BFD target `%s'\n"
@@ -353,7 +353,7 @@ msgstr "%F%P:%pS: грешка: синоним за област памет по
 
 #: ldlang.c:1372
 msgid "%F%P:%pS: error: redefinition of memory region alias `%s'\n"
-msgstr "%F%P:%pS: грешка: повторен определение на синоним за област памет '%s'\n"
+msgstr "%F%P:%pS: грешка: повторено определение на синоним за област памет '%s'\n"
 
 #: ldlang.c:1379
 msgid "%F%P:%pS: error: memory region `%s' for alias `%s' does not exist\n"
@@ -361,7 +361,7 @@ msgstr "%F%P:%pS: грешка: област памет '%s' за синоним
 
 #: ldlang.c:1438 ldlang.c:1477
 msgid "%F%P: failed creating section `%s': %E\n"
-msgstr "%F%P: Ð¿Ñ\80опадна създаването на раздел '%s': %E\n"
+msgstr "%F%P: Ð½Ðµ Ñ\83Ñ\81пÑ\8f създаването на раздел '%s': %E\n"
 
 #: ldlang.c:1998
 msgid ""
@@ -439,7 +439,7 @@ msgstr "%F%P: %pB: файлът не е разпознат: %E\n"
 
 #: ldlang.c:2854
 msgid "%F%P: %pB: member %pB in archive is not an object\n"
-msgstr "%F%P: %pB: членът, на архива %pB, не е обект\n"
+msgstr "%F%P: %pB: членът на архива %pB не е обект\n"
 
 #: ldlang.c:2869 ldlang.c:2883 eaarch64cloudabi.c:776 eaarch64cloudabib.c:776
 #: eaarch64elf.c:776 eaarch64elf32.c:776 eaarch64elf32b.c:776
@@ -518,7 +518,7 @@ msgstr "%F%P: %pB: грешка при добавяне на имената: %E\
 
 #: ldlang.c:3157
 msgid "%P: warning: could not find any targets that match endianness requirement\n"
-msgstr "%P: предупреждение: не може да се открие резултат, който да отговаря на изискванията за подредба(на байтовете)\n"
+msgstr "%P: предупреждение: не може да се открие резултат, който да отговаря на изискванията за подредба на байтовете\n"
 
 #: ldlang.c:3171
 msgid "%F%P: target %s not found\n"
@@ -546,7 +546,7 @@ msgstr "%X%P: не е определено задължителното име '
 
 #: ldlang.c:3770
 msgid "%F%P: %s not found for insert\n"
-msgstr "%F%P: %s не е намерен(за добавяне)\n"
+msgstr "%F%P: %s не е намерен за добавяне\n"
 
 #: ldlang.c:4011
 msgid " load address 0x%V"
@@ -598,7 +598,7 @@ msgstr "%X%P: %pB раздел '%s' не се побира в област '%s'\
 
 #: ldlang.c:5050
 msgid "%F%P:%pS: non constant or forward reference address expression for section %s\n"
-msgstr "%F%P:%pS: адресния израз не е константен или отпратка за по нататък при раздел %s\n"
+msgstr "%F%P:%pS: адресният израз не е константен или е отпратка за по нататък при раздел %s\n"
 
 #: ldlang.c:5075
 msgid "%X%P: internal error on COFF shared library section %s\n"
@@ -664,7 +664,7 @@ msgstr "%X%P: %s архитектурата на входен файл '%pB' е
 
 #: ldlang.c:6332
 msgid "%X%P: failed to merge target specific data of file %pB\n"
-msgstr "%X%P: Ð¿Ñ\80опадна Ñ\81ливанеÑ\82о, Ð½Ð° Ñ\81пеÑ\86иÑ\84иÑ\87ни Ð·Ð° Ñ\80езÑ\83лÑ\82аÑ\82а Ð´Ð°Ð½Ð½Ð¸, от файл %pB\n"
+msgstr "%X%P: Ð½Ðµ Ñ\83Ñ\81пÑ\8f Ñ\81ливанеÑ\82о Ð½Ð° Ñ\86елеви Ð´Ð°Ð½Ð½Ð¸ от файл %pB\n"
 
 #: ldlang.c:6403
 msgid "%F%P: could not define common symbol `%pT': %E\n"
@@ -704,7 +704,7 @@ msgstr "%F%P:%pS: грешка: зададено е подравняване с
 
 #: ldlang.c:7198
 msgid "%F%P: %s: plugin reported error after all symbols read\n"
-msgstr "%F%P: %s: приставката рапортува грешка, след прочитане на всички имена\n"
+msgstr "%F%P: %s: приставката отчете грешка след прочитане на всички имена\n"
 
 #: ldlang.c:7602
 msgid "%F%P: multiple STARTUP files\n"
@@ -805,11 +805,11 @@ msgstr "%P: грешка при свързване, изтриване на из
 
 #: ldmain.c:490
 msgid "%F%P: %pB: final close failed: %E\n"
-msgstr "%F%P: %pB: Ð¿Ñ\80опадна заключителното затваряне: %E\n"
+msgstr "%F%P: %pB: Ð½Ðµ Ñ\83Ñ\81пÑ\8f заключителното затваряне: %E\n"
 
 #: ldmain.c:517
 msgid "%F%P: unable to open for source of copy `%s'\n"
-msgstr "%F%P: не можа да се отвори източника на копието '%s'\n"
+msgstr "%F%P: не можа да се отвори източникът на копието '%s'\n"
 
 #: ldmain.c:520
 msgid "%F%P: unable to open for destination of copy `%s'\n"
@@ -1017,7 +1017,7 @@ msgstr "%P: вътрешна грешка: прекратяване на %s:%d\n
 
 #: ldmisc.c:703
 msgid "%F%P: please report this bug\n"
-msgstr "%F%P: моля, рапортувайте този проблем\n"
+msgstr "%F%P: моля, докладвайте този проблем\n"
 
 #. Output for noisy == 2 is intended to follow the GNU standards.
 #: ldver.c:37
@@ -1048,7 +1048,7 @@ msgstr "  Поддържани подражавания:\n"
 
 #: ldwrite.c:60 ldwrite.c:206 ldwrite.c:258 ldwrite.c:299
 msgid "%F%P: bfd_new_link_order failed\n"
-msgstr "%F%P: пропадна bfd_new_link_order\n"
+msgstr "%F%P: bfd_new_link_order не успя\n"
 
 #: ldwrite.c:368
 msgid "%F%P: cannot create split section name for %s\n"
@@ -1056,7 +1056,7 @@ msgstr "%F%P: при разцепване на раздел, не можа да
 
 #: ldwrite.c:380
 msgid "%F%P: clone section failed: %E\n"
-msgstr "%F%P: Ð¿Ñ\80опадна ÐºÐ¾Ð¿Ð¸Ñ\80ането на раздел: %E\n"
+msgstr "%F%P: Ð½Ðµ Ñ\83Ñ\81пÑ\8f Ñ\80аздвоÑ\8fването на раздел: %E\n"
 
 #: ldwrite.c:418
 #, c-format
@@ -1065,7 +1065,7 @@ msgstr "%8x други\n"
 
 #: ldwrite.c:588
 msgid "%F%P: final link failed: %E\n"
-msgstr "%F%P: Ð¿Ñ\80опадна заключителното свързване: %E\n"
+msgstr "%F%P: Ð½Ðµ Ñ\83Ñ\81пÑ\8f заключителното свързване: %E\n"
 
 #: lexsup.c:102 lexsup.c:276
 msgid "KEYWORD"
@@ -1490,7 +1490,7 @@ msgstr ""
 
 #: lexsup.c:350
 msgid "Set default hash table size close to <NUMBER>"
-msgstr "Установява размер по подразбиране на таблицат за хеш близък до <ЧИСЛО>"
+msgstr "Установява размер, по подразбиране, на речника близък до <ЧИСЛО>"
 
 #: lexsup.c:353
 msgid "Print option help"
@@ -1776,15 +1776,15 @@ msgstr "Предупреждение, ако споделен обект съд
 
 #: lexsup.c:518
 msgid "Warn if an object has alternate ELF machine code"
-msgstr "Предупреждение ако обекта е с друг ELF ELF код за машина"
+msgstr "Предупреждение, ако обекта е с друг ELF код за машина"
 
 #: lexsup.c:522
 msgid "Report unresolved symbols as warnings"
-msgstr "РапоÑ\80Ñ\82Ñ\83ване ÐºÐ°Ñ\82о Ð¿Ñ\80едÑ\83пÑ\80еждениÑ\8f, Ð½Ð° Ð½ÐµÑ\81вÑ\8aÑ\80зани Ð¸Ð¼ÐµÐ½Ð°"
+msgstr "Ð\94окладване Ð½Ð° Ð½ÐµÑ\81вÑ\8aÑ\80зани Ð¸Ð¼ÐµÐ½Ð° ÐºÐ°Ñ\82о Ð¿Ñ\80едÑ\83пÑ\80еждениÑ\8f"
 
 #: lexsup.c:525
 msgid "Report unresolved symbols as errors"
-msgstr "РапоÑ\80Ñ\82Ñ\83ване, ÐºÐ°Ñ\82о Ð³Ñ\80еÑ\88ки, Ð½Ð° Ð½ÐµÑ\81вÑ\8aÑ\80зани Ð¸Ð¼ÐµÐ½Ð°"
+msgstr "Ð\94окладване Ð½Ð° Ð½ÐµÑ\81вÑ\8aÑ\80зани Ð¸Ð¼ÐµÐ½Ð° ÐºÐ°Ñ\82о Ð³Ñ\80еÑ\88ки"
 
 #: lexsup.c:527
 msgid "Include all objects from following archives"
@@ -2332,12 +2332,12 @@ msgstr "%X%P: не може да се създаде раздел .reloc: %E\n"
 #: pe-dll.c:1100
 #, c-format
 msgid "%X%P: error: ordinal used twice: %d (%s vs %s)\n"
-msgstr "%X%P: грешка, номера е използван два пъти: %d (%s с/у %s)\n"
+msgstr "%X%P: грешка, номерът е използван два пъти: %d (%s с/у %s)\n"
 
 #: pe-dll.c:1136
 #, c-format
 msgid "%X%P: error: export ordinal too large: %d\n"
-msgstr "%X%P: грешка: номера е твърде голям: %d\n"
+msgstr "%X%P: грешка: номерът е твърде голям: %d\n"
 
 #: pe-dll.c:1452
 #, c-format
@@ -2346,7 +2346,7 @@ msgstr "Сведение: разрешаване на %s със свързван
 
 #: pe-dll.c:1458
 msgid "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"
-msgstr "%P: предупреждение: автоматично внасяне е задействано без да се зададе --enable-auto-import на командния ред.Това работи, освен ако не е свързано с константни структури за данни, които указват към имена от автоматично внасяни DLL-ли.\n"
+msgstr "%P: предупреждение: автоматично внасяне е задействано без да се зададе --enable-auto-import на командния ред. Това работи, освен ако не е свързано с константни структури за данни, които указват към имена от автоматично внасяни DLL-ли.\n"
 
 #. Huh?  Shouldn't happen, but punt if it does.
 #: pe-dll.c:1527
@@ -2370,7 +2370,7 @@ msgstr "; липсва съдържание\n"
 
 #: pe-dll.c:2780
 msgid "%X%P: %C: variable '%pT' can't be auto-imported; please read the documentation for ld's --enable-auto-import for details\n"
-msgstr "%X%P: %C: променливата '%pT' не може да се внесе автоматично. Да се прочете в документацията на свързващата програма за повече сведения относно --enable-auto-import.\n"
+msgstr "%X%P: %C: променливата '%pT' не може да се внесе автоматично. Да се провери в документацията на свързващата програма за повече сведения относно --enable-auto-import.\n"
 
 #: pe-dll.c:2807
 #, c-format
@@ -2469,7 +2469,7 @@ msgstr "%F%P: приставката не можа да задели памет
 
 #: plugin.c:1138
 msgid "%F%P: %s: plugin reported error claiming file\n"
-msgstr "%F%P: %s: приставката рапортува грешка, при твърденията за файла\n"
+msgstr "%F%P: %s: приставката отчете грешка при твърденията за файла\n"
 
 #: plugin.c:1248
 msgid "%P: %s: error in plugin cleanup: %d (ignored)\n"
@@ -2547,7 +2547,7 @@ msgstr "%P: %s: грешка при почистване на приставка
 #: eshlelf_nto.c:81 eshlelf_vxworks.c:81 ev850.c:81 ev850_rh850.c:81
 #: exgateelf.c:81
 msgid "%F%P: map sections to segments failed: %E\n"
-msgstr "%F%P: Ð¿Ñ\80опадна свързването на раздел към част: %E\n"
+msgstr "%F%P: Ð½Ðµ Ñ\83Ñ\81пÑ\8f свързването на раздел към част: %E\n"
 
 #: eaarch64cloudabi.c:101 eaarch64cloudabib.c:101 eaarch64elf.c:101
 #: eaarch64elf32.c:101 eaarch64elf32b.c:101 eaarch64elfb.c:101
@@ -5051,31 +5051,31 @@ msgstr "%F%P: не се чете %s\n"
 
 #: eaix5ppc.c:390 eaix5rs6.c:390 eaixppc.c:390 eaixrs6.c:390 eppcmacos.c:390
 msgid "%P: warning: ignoring invalid -D number %s\n"
-msgstr "%P: Ð¿Ñ\80едÑ\83пÑ\80еждение: Ð¸Ð·Ð¾Ñ\81Ñ\82авÑ\8fне на неправилно число за -D %s\n"
+msgstr "%P: Ð¿Ñ\80едÑ\83пÑ\80еждение: Ð¿Ñ\80опÑ\83Ñ\81кане на неправилно число за -D %s\n"
 
 #: eaix5ppc.c:398 eaix5rs6.c:398 eaixppc.c:398 eaixrs6.c:398 eppcmacos.c:398
 msgid "%P: warning: ignoring invalid -H number %s\n"
-msgstr "%P: Ð¿Ñ\80едÑ\83пÑ\80еждение: Ð¸Ð·Ð¾Ñ\81Ñ\82авÑ\8fне на неправилно число за -H %s\n"
+msgstr "%P: Ð¿Ñ\80едÑ\83пÑ\80еждение: Ð¿Ñ\80опÑ\83Ñ\81кане на неправилно число за -H %s\n"
 
 #: eaix5ppc.c:510 eaix5rs6.c:510 eaixppc.c:510 eaixrs6.c:510 eppcmacos.c:510
 msgid "%P: warning: ignoring invalid -bmaxdata number %s\n"
-msgstr "%P: Ð¿Ñ\80едÑ\83пÑ\80еждение: Ð¸Ð·Ð¾Ñ\81Ñ\82авÑ\8fне на неправилно число за -bmaxdata %s\n"
+msgstr "%P: Ð¿Ñ\80едÑ\83пÑ\80еждение: Ð¿Ñ\80опÑ\83Ñ\81кане на неправилно число за -bmaxdata %s\n"
 
 #: eaix5ppc.c:519 eaix5rs6.c:519 eaixppc.c:519 eaixrs6.c:519 eppcmacos.c:519
 msgid "%P: warning: ignoring invalid -bmaxstack number %s\n"
-msgstr "%P: Ð¿Ñ\80едÑ\83пÑ\80еждение: Ð¸Ð·Ð¾Ñ\81Ñ\82авÑ\8fне на неправилно число за -bmaxstack %s\n"
+msgstr "%P: Ð¿Ñ\80едÑ\83пÑ\80еждение: Ð¿Ñ\80опÑ\83Ñ\81кане на неправилно число за -bmaxstack %s\n"
 
 #: eaix5ppc.c:532 eaix5rs6.c:532 eaixppc.c:532 eaixrs6.c:532 eppcmacos.c:532
 msgid "%P: warning: ignoring invalid module type %s\n"
-msgstr "%P: Ð¿Ñ\80едÑ\83пÑ\80еждение: Ð¸Ð·Ð¾Ñ\81Ñ\82авÑ\8fне на неправиен тип на модул %s\n"
+msgstr "%P: Ð¿Ñ\80едÑ\83пÑ\80еждение: Ð¿Ñ\80опÑ\83Ñ\81кане на неправиен тип на модул %s\n"
 
 #: eaix5ppc.c:562 eaix5rs6.c:562 eaixppc.c:562 eaixrs6.c:562 eppcmacos.c:562
 msgid "%P: warning: ignoring invalid -pD number %s\n"
-msgstr "%P: Ð¿Ñ\80едÑ\83пÑ\80еждение: Ð¸Ð·Ð¾Ñ\81Ñ\82авÑ\8fне на неправилно число за -pD %s\n"
+msgstr "%P: Ð¿Ñ\80едÑ\83пÑ\80еждение: Ð¿Ñ\80опÑ\83Ñ\81кане на неправилно число за -pD %s\n"
 
 #: eaix5ppc.c:585 eaix5rs6.c:585 eaixppc.c:585 eaixrs6.c:585 eppcmacos.c:585
 msgid "%P: warning: ignoring invalid -pT number %s\n"
-msgstr "%P: Ð¿Ñ\80едÑ\83пÑ\80еждение: Ð¸Ð·Ð¾Ñ\81Ñ\82авÑ\8fне на неправилно число за -pT %s\n"
+msgstr "%P: Ð¿Ñ\80едÑ\83пÑ\80еждение: Ð¿Ñ\80опÑ\83Ñ\81кане на неправилно число за -pT %s\n"
 
 #: eaix5ppc.c:714 eaix5rs6.c:714 eaixppc.c:714 eaixrs6.c:714 eppcmacos.c:714
 msgid "%F%P: bfd_xcoff_link_record_set failed: %E\n"
@@ -5252,7 +5252,7 @@ msgstr "  --[no-]leading-underscore          Изрично установява
 #: emcorepe.c:392 eppcpe.c:392 eshpe.c:392
 #, c-format
 msgid "  --thumb-entry=<symbol>             Set the entry point to be Thumb <symbol>\n"
-msgstr "  --thumb-entry=<знак>               Ð£Ñ\81Ñ\82ановÑ\8fване Ð½Ð° Ð²Ñ\85одÑ\8fÑ\89а Ñ\82оÑ\87ка Ð´Ð° Ðµ отбелязания <знак>\n"
+msgstr "  --thumb-entry=<знак>               Ð£Ñ\81Ñ\82ановÑ\8fване Ð½Ð° Ð²Ñ\85одÑ\8fÑ\89а Ñ\82оÑ\87ка Ð½Ð° отбелязания <знак>\n"
 
 #: earm_wince_pe.c:393 earmpe.c:393 ei386pe.c:393 ei386pe_posix.c:393
 #: emcorepe.c:393 eppcpe.c:393 eshpe.c:393
@@ -5264,7 +5264,7 @@ msgstr "  --[no-]insert-timestamp            Използва истинска 
 #: ei386pep.c:375 emcorepe.c:394 eppcpe.c:394 eshpe.c:394
 #, c-format
 msgid "                                     This makes binaries non-deterministic\n"
-msgstr "                                     Това прави двоичните файлове неопределяеми\n"
+msgstr "                                     Това прави двоичните файлове несравними\n"
 
 #: earm_wince_pe.c:396 earmpe.c:396 ei386pe.c:396 ei386pe_posix.c:396
 #: ei386pep.c:377 emcorepe.c:396 eppcpe.c:396 eshpe.c:396
@@ -5440,7 +5440,7 @@ msgid ""
 "                                       greater than 2 gigabytes\n"
 msgstr ""
 "  --large-address-aware              Програмата поддържа виртуални адреси\n"
-"                                       по-голями от 2 гигабайта\n"
+"                                       по-големи от 2 гигабайта\n"
 
 #: earm_wince_pe.c:420 earmpe.c:420 ei386pe.c:420 ei386pe_posix.c:420
 #: emcorepe.c:420 eppcpe.c:420 eshpe.c:420
@@ -5450,7 +5450,7 @@ msgid ""
 "                                       addresses greater than 2 gigabytes\n"
 msgstr ""
 "  --disable-large-address-aware      Програмата не поддържа виртуални\n"
-"                                       адреси по-голями от 2 гигабайта\n"
+"                                       адреси по-големи от 2 гигабайта\n"
 
 #: earm_wince_pe.c:421 earmpe.c:421 ei386pe.c:421 ei386pe_posix.c:421
 #: ei386pep.c:399 emcorepe.c:421 eppcpe.c:421 eshpe.c:421
@@ -5479,7 +5479,7 @@ msgid ""
 "  --dynamicbase                      Image base address may be relocated using\n"
 "                                       address space layout randomization (ASLR)\n"
 msgstr ""
-"  --dynamicbase                      Основния адрес на образа може да бъде преместен\n"
+"  --dynamicbase                      Основният адрес на образа може да бъде преместен\n"
 "                                       като се използва случаен адрес\n"
 
 #: earm_wince_pe.c:424 earmpe.c:424 ei386pe.c:424 ei386pe_posix.c:424
@@ -5492,13 +5492,13 @@ msgstr "  --forceinteg               Налагане на проверка за
 #: ei386pep.c:404 emcorepe.c:425 eppcpe.c:425 eshpe.c:425
 #, c-format
 msgid "  --nxcompat                 Image is compatible with data execution prevention\n"
-msgstr "  --nxcompat                 Образа е съвместим с предотвратяване на изпълнение на данни\n"
+msgstr "  --nxcompat                 Образът е съвместим с предотвратяване на изпълнение на данни\n"
 
 #: earm_wince_pe.c:426 earmpe.c:426 ei386pe.c:426 ei386pe_posix.c:426
 #: ei386pep.c:405 emcorepe.c:426 eppcpe.c:426 eshpe.c:426
 #, c-format
 msgid "  --no-isolation             Image understands isolation but do not isolate the image\n"
-msgstr "  --no-isolation             Образа поддържа изолиране, но да не се изолира\n"
+msgstr "  --no-isolation             Образът поддържа изолиране, но да не се изолира\n"
 
 #: earm_wince_pe.c:427 earmpe.c:427 ei386pe.c:427 ei386pe_posix.c:427
 #: emcorepe.c:427 eppcpe.c:427 eshpe.c:427
@@ -5507,7 +5507,7 @@ msgid ""
 "  --no-seh                   Image does not use SEH. No SE handler may\n"
 "                                       be called in this image\n"
 msgstr ""
-"  --no-seh                   Образа не използва SEH. В този образ не\n"
+"  --no-seh                   Образът не използва SEH. В този образ не\n"
 "                               може да се извиква SE подръжка\n"
 
 #: earm_wince_pe.c:428 earmpe.c:428 ei386pe.c:428 ei386pe_posix.c:428
@@ -5526,7 +5526,7 @@ msgstr "  --wdmdriver                Използване на WDM модел з
 #: ei386pep.c:409 emcorepe.c:430 eppcpe.c:430 eshpe.c:430
 #, c-format
 msgid "  --tsaware                  Image is Terminal Server aware\n"
-msgstr "  --tsaware                  Образа поддържа \"Terminal Server\"\n"
+msgstr "  --tsaware                  Образът поддържа \"Terminal Server\"\n"
 
 #: earm_wince_pe.c:431 earmpe.c:431 ei386pe.c:431 ei386pe_posix.c:431
 #: ei386pep.c:410 emcorepe.c:431 eppcpe.c:431 eshpe.c:431
@@ -5603,7 +5603,7 @@ msgstr ""
 #: earm_wince_pe.c:1302 earmpe.c:1302 ei386pe.c:1302 ei386pe_posix.c:1302
 #: ei386pep.c:1305 emcorepe.c:1302 eppcpe.c:1302 eshpe.c:1302
 msgid "%F%P: cannot perform PE operations on non PE output file '%pB'\n"
-msgstr "%F%P: Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñ\81е Ð¸Ð·Ð²Ñ\8aÑ\80Ñ\88и \"PE\"-операции на изходен файл '%pB', който не е \"PE\"\n"
+msgstr "%F%P: Ð½Ðµ Ð¼Ð¾Ð¶Ðµ Ð´Ð° Ñ\81е Ð¸Ð·Ð²Ñ\8aÑ\80Ñ\88аÑ\82 \"PE\"-операции на изходен файл '%pB', който не е \"PE\"\n"
 
 #: earm_wince_pe.c:1442 earmpe.c:1442 ei386pe.c:1442 ei386pe_posix.c:1442
 #: ei386pep.c:1426 emcorepe.c:1442 eppcpe.c:1442 eshpe.c:1442
@@ -5649,7 +5649,7 @@ msgstr "%P: предупреждение: '--thumb-entry %s' прегазва '-
 #: earmnto.c:577 earmpe.c:1876 earmsymbian.c:577 ei386pe.c:1876
 #: ei386pe_posix.c:1876 emcorepe.c:1876 eppcpe.c:1876 eshpe.c:1876
 msgid "%P: warning: cannot find thumb start symbol %s\n"
-msgstr "%P: предупреждение: не е намерен, като начален, отбелязания знак %s\n"
+msgstr "%P: предупреждение: не е намерен, като начален, отбелязаният знак %s\n"
 
 #: earmelf.c:603 earmelf_fbsd.c:603 earmelf_fuchsia.c:603 earmelf_linux.c:603
 #: earmelf_linux_eabi.c:603 earmelf_linux_fdpiceabi.c:603 earmelf_nacl.c:603
@@ -5700,7 +5700,7 @@ msgstr "%P: неразпознат вид STM32L4XX поправка '%s'\n"
 #: earmelfb_nacl.c:2851 earmelfb_nbsd.c:2851 earmnto.c:2826 earmsymbian.c:2851
 #, c-format
 msgid "  --thumb-entry=<sym>         Set the entry point to be Thumb symbol <sym>\n"
-msgstr "  --thumb-entry=<знак>        Ð£Ñ\81Ñ\82ановÑ\8fва Ð²Ñ\85одÑ\8fÑ\89а Ñ\82оÑ\87ка Ð´Ð° Ðµ отбелязания <знак>\n"
+msgstr "  --thumb-entry=<знак>        Ð£Ñ\81Ñ\82ановÑ\8fва Ð²Ñ\85одÑ\8fÑ\89а Ñ\82оÑ\87ка Ð½Ð° отбелязания <знак>\n"
 
 #: earmelf.c:2852 earmelf_fbsd.c:2859 earmelf_fuchsia.c:2852
 #: earmelf_linux.c:2852 earmelf_linux_eabi.c:2852
@@ -6667,7 +6667,7 @@ msgstr ""
 
 #: eelf32xtensa.c:561
 msgid "%F%P: failed to create .xtensa.info section\n"
-msgstr "%F%P: Ð¿Ñ\80опадна създаването на раздел .xtensa.info\n"
+msgstr "%F%P: Ð½Ðµ Ñ\83Ñ\81пÑ\8f създаването на раздел .xtensa.info\n"
 
 #: eelf32xtensa.c:4073
 #, c-format
@@ -6945,7 +6945,7 @@ msgid ""
 "  --no-seh                   Image does not use SEH; no SE handler may\n"
 "                                       be called in this image\n"
 msgstr ""
-"  --no-seh                   Образа не използва SEH. В този образ не може\n"
+"  --no-seh                   Образът не използва SEH. В този образ не може\n"
 "                               да се извиква SE подръжка\n"
 
 #: ei386pep.c:908
index bcba0aa0255215ee5279489e233ce748124a7438..178363786542be857f738c4fd1765b0cb42006c0 100644 (file)
@@ -3,7 +3,7 @@
 #target: aarch64*-*-*
 
 #...
-0+(110|180) <__GI_foo>:
+0+(110|180|1a0) <(__GI_)?foo>:
 #...
-[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+(0x110|0x180)@plt>
+[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+(0x110|0x180|0x1a0)@plt>
 #pass
index f408bfff787e1d3ec42abf9fc00ca6ecd0c176f0..0274ac0094e42300b2bde89041a6aae426e23ceb 100644 (file)
@@ -3,7 +3,7 @@
 #target: aarch64*-*-*
 
 #...
-0+(130|1a0) <foo>:
+0+(130|1a0|1c8) <foo>:
 #...
-[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+0x(130|1a0)@plt>
+[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+0x(130|1a0|1c8)@plt>
 #pass
index fb1bb40e386b7077a7ccabfce22bbf16a8cd6cce..a3d9e15f8b6ae9ba747dc79ee0817b4c9c8764d1 100644 (file)
@@ -3,9 +3,9 @@
 #target: aarch64*-*-*
 
 #...
-0+(110|180) <__GI_foo>:
+0+(110|180|1a0) <__GI_foo>:
 #...
-[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+0x(110|180)@plt>
+[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+0x(110|180|1a0)@plt>
 [ \t0-9a-f]+:[ \t0-9a-f]+adrp[ \t]+x0, 0 <.*>
-[ \t0-9a-f]+:[ \t0-9a-f]+add[ \t]+x0, x0, #0x(100|170)
+[ \t0-9a-f]+:[ \t0-9a-f]+add[ \t]+x0, x0, #0x(100|170|190)
 #pass
index 16c75ead407fd575bc3998c615d16a5422b5dab3..eb6fa0ccf0b25314a25ad59abbb941ec3ded2b75 100644 (file)
@@ -3,9 +3,9 @@
 #target: aarch64*-*-*
 
 #...
-0+(130|1a0) <foo>:
+0+(130|1a0|1c8) <foo>:
 #...
-[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+0x(130|1a0)@plt>
+[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+0x(130|1a0|1c8)@plt>
 [ \t0-9a-f]+:[ \t0-9a-f]+adrp[ \t]+x0, 0 <.*>
-[ \t0-9a-f]+:[ \t0-9a-f]+add[ \t]+x0, x0, #0x(120|190)
+[ \t0-9a-f]+:[ \t0-9a-f]+add[ \t]+x0, x0, #0x(120|190|1b8)
 #pass
index b501bd6712b943ad9547544dbae7213a141c3f12..a16186b587eb65390f698c362cb34be5669ae16a 100644 (file)
@@ -11,7 +11,7 @@ Contents of section .text:
  [0-9a-f]+ .*
 Contents of section .got.plt:
  [0-9a-f]+ 0+ 0+ 0+ 0+  .*
10298 0+ 0+ [0-9a-f]+ [0-9a-f]+  .*
(10298|102b8) 0+ 0+ [0-9a-f]+ [0-9a-f]+  .*
 
 Disassembly of section .text:
 
@@ -20,7 +20,7 @@ Disassembly of section .text:
 
 .* <bar>:
  .*:   90000080        adrp    x0, 10000 <.*>
- .*:   .*      ldr     x0, \[x0, #672\]
+ .*:   .*      ldr     x0, \[x0, #(672|704)\]
  .*:   d65f03c0        ret
 
 #pass
index a01a75c904ff283ac928cc5e3c285b8ee432f194..4919d9689280e474dfe108fd86dfc1f96958edf3 100644 (file)
@@ -4,7 +4,7 @@
 #target: aarch64*-*-*
 
 #...
-0+(150|1d0) <__GI_foo>:
+0+(150|1d0|1e8) <__GI_foo>:
 #...
-[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+0x(150|1d0)@plt>
+[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+0x(150|1d0|1e8)@plt>
 #pass
index 3b4e99525429c9b42e2b0965d56ed2f2b5847056..e921591275f3ed45235d8e34b8786da4e1bf5595 100644 (file)
@@ -1,3 +1,4 @@
 #ld: --export-dynamic
-#error: .*dynamic STT_GNU_IFUNC symbol `foo' with pointer equality in `.*.o' can not be used when making an executable; recompile with -fPIE and relink with -pie
+#objdump: -dr
 #target: aarch64*-*-*
+#...
diff --git a/ld/testsuite/ld-elf/dummy.s b/ld/testsuite/ld-elf/dummy.s
new file mode 100644 (file)
index 0000000..403f980
--- /dev/null
@@ -0,0 +1 @@
+# Dummy
diff --git a/ld/testsuite/ld-elf/linux-x86.S b/ld/testsuite/ld-elf/linux-x86.S
new file mode 100644 (file)
index 0000000..d94abc1
--- /dev/null
@@ -0,0 +1,91 @@
+       .text
+       .globl _start
+       .type _start,@function
+       .p2align 4
+_start:
+       xorl %ebp, %ebp
+#ifdef __LP64__
+       popq %rdi
+       movq %rsp, %rsi
+       andq  $~15, %rsp
+#elif defined __x86_64__
+       mov (%rsp),%edi
+       addl $4,%esp
+       movl %esp, %esi
+       andl  $~15, %esp
+#else
+       popl %esi
+       movl %esp, %ecx
+       andl  $~15, %esp
+
+       subl $8,%esp
+       pushl %ecx
+       pushl %esi
+#endif
+
+       call main
+
+       hlt
+
+       .type syscall,  @function
+       .globl syscall
+       .p2align 4
+syscall:
+#ifdef __x86_64__
+       movq %rdi, %rax         /* Syscall number -> rax.  */
+       movq %rsi, %rdi         /* shift arg1 - arg5.  */
+       movq %rdx, %rsi
+       movq %rcx, %rdx
+       movq %r8, %r10
+       movq %r9, %r8
+       movq 8(%rsp),%r9        /* arg6 is on the stack.  */
+       syscall                 /* Do the system call.  */
+#else
+       push %ebp
+       push %edi
+       push %esi
+       push %ebx
+       mov 0x2c(%esp),%ebp
+       mov 0x28(%esp),%edi
+       mov 0x24(%esp),%esi
+       mov 0x20(%esp),%edx
+       mov 0x1c(%esp),%ecx
+       mov 0x18(%esp),%ebx
+       mov 0x14(%esp),%eax
+       int $0x80
+       pop %ebx
+       pop %esi
+       pop %edi
+       pop %ebp
+#endif
+       ret                     /* Return to caller.  */
+       .size syscall, .-syscall
+       .section .note.GNU-stack,"",@progbits
+
+       .section ".note.gnu.property", "a"
+#ifdef __LP64__
+       .p2align 3
+#else
+       .p2align 2
+#endif
+       .long 1f - 0f           /* name length */
+       .long 5f - 2f           /* data length */
+       .long 5                 /* note type */
+0:     .asciz "GNU"            /* vendor name */
+1:
+#ifdef __LP64__
+       .p2align 3
+#else
+       .p2align 2
+#endif
+2:     .long 0xc0000002        /* pr_type.  */
+       .long 4f - 3f           /* pr_datasz.  */
+3:
+       .long 0x2
+4:
+#ifdef __LP64__
+       .p2align 3
+#else
+       .p2align 2
+#endif
+5:
diff --git a/ld/testsuite/ld-elf/linux-x86.exp b/ld/testsuite/ld-elf/linux-x86.exp
new file mode 100644 (file)
index 0000000..f6f5a80
--- /dev/null
@@ -0,0 +1,46 @@
+# Expect script for simple native Linux/x86 tests.
+#   Copyright (C) 2018 Free Software Foundation, Inc.
+#
+# This file is part of the GNU Binutils.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU 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.
+#
+
+# Test very simple native Linux/x86 programs with linux-x86.S.
+if { ![isnative] || [which $CC] == 0 \
+     || (![istarget "i?86-*-linux*"] \
+         && ![istarget "x86_64-*-linux*"] \
+         && ![istarget "amd64-*-linux*"]) } {
+    return
+}
+
+# Add $PLT_CFLAGS if PLT is expected.
+global PLT_CFLAGS
+# Add $NOPIE_CFLAGS and $NOPIE_LDFLAGS if non-PIE is required.
+global NOPIE_CFLAGS NOPIE_LDFLAGS
+
+run_ld_link_exec_tests [list \
+    [list \
+       "Run PR ld/23428 test" \
+       "--no-dynamic-linker -z separate-code" \
+       "" \
+       { linux-x86.S pr23428.c dummy.s } \
+       "pr23428" \
+       "pass.out" \
+       "$NOPIE_CFLAGS -fno-asynchronous-unwind-tables" \
+       "asm" \
+    ] \
+]
diff --git a/ld/testsuite/ld-elf/pr23428.c b/ld/testsuite/ld-elf/pr23428.c
new file mode 100644 (file)
index 0000000..3631ed7
--- /dev/null
@@ -0,0 +1,43 @@
+#include <unistd.h>
+#include <link.h>
+#include <syscall.h>
+
+#define STRING_COMMA_LEN(STR) (STR), (sizeof (STR) - 1)
+
+int
+main (int argc, char **argv)
+{
+  char **ev = &argv[argc + 1];
+  char **evp = ev;
+  ElfW(auxv_t) *av;
+  const ElfW(Phdr) *phdr = NULL;
+  size_t phnum = 0;
+  size_t loadnum = 0;
+  int fd = STDOUT_FILENO;
+  size_t i;
+
+  while (*evp++ != NULL)
+    ;
+
+  av = (ElfW(auxv_t) *) evp;
+
+  for (; av->a_type != AT_NULL; ++av)
+    switch (av->a_type)
+      {
+      case AT_PHDR:
+       phdr = (const void *) av->a_un.a_val;
+       break;
+      case AT_PHNUM:
+       phnum = av->a_un.a_val;
+       break;
+      }
+
+  for (i = 0; i < phnum; i++, phdr++)
+    if (phdr->p_type == PT_LOAD)
+      loadnum++;
+
+  syscall (SYS_write, fd, STRING_COMMA_LEN ("PASS\n"));
+
+  syscall (SYS_exit, !loadnum);
+  return 0;
+}
index b58139e9dda3ef21335b383e1b7fd092f35bcdb6..3909c0eaa146b581cb249914d175c00525fe97f5 100644 (file)
@@ -177,6 +177,8 @@ if { ![istarget "d10v-*-*"]
     foreach sfile $sfiles { puts $ofd "#source: $sfile" }
     if { [istarget spu*-*-*] } {
        puts $ofd "#ld: --local-store 0:0"
+    } elseif { [istarget "i?86-*-linux*"] || [istarget "x86_64-*-linux*"] } {
+       puts $ofd "#ld: -z noseparate-code"
     } else {
        puts $ofd "#ld:"
     }
index ac9beff2e52dcaad95db6ffc5e98d02951a7d95c..aba7d6b03f5c92801bf151d0316c7cda26e36dcc 100644 (file)
@@ -2,7 +2,7 @@
 #source: abs.s
 #source: zero.s
 #as: --32 -march=iamcu
-#ld: -m elf_iamcu
+#ld: -m elf_iamcu -z noseparate-code
 #objdump: -rs -j .text
 
 .*:     file format .*
index e660aca5246212686c5ed73866d73f6d64837e67..191ee4456ad8b1a267a8534ce9f0df1b9997e169 100644 (file)
@@ -2,7 +2,7 @@
 #as: --32
 #source: abs.s
 #source: zero.s
-#ld: -melf_i386
+#ld: -melf_i386 -z noseparate-code
 #objdump: -rs
 
 .*:     file format .*
index 6d794fe653a4f3db7092397483679dc02095b38d..78dad025793629290c2dce1bca51064e669e4311 100644 (file)
@@ -462,6 +462,8 @@ run_dump_test "pr23189"
 run_dump_test "pr23194"
 run_dump_test "pr23372a"
 run_dump_test "pr23372b"
+run_dump_test "pr23486a"
+run_dump_test "pr23486b"
 
 if { !([istarget "i?86-*-linux*"]
        || [istarget "i?86-*-gnu*"]
index ec51540a421a0c3021ab425d64cf87e6e518ae3a..7eba52d95e8f1209e1df16ae535465f42e83e425 100644 (file)
@@ -1,6 +1,6 @@
 #name: PR ld/12718
 #as: --32
-#ld: -melf_i386
+#ld: -melf_i386 -z noseparate-code
 #readelf: -S
 
 There are 5 section headers, starting at offset 0x[0-9a-f]+:
index e49079b3c824580aa0df7163521824630ce05eaf..ea2da3eb51ed8f8561facce061e85b6c385fd582 100644 (file)
@@ -1,6 +1,6 @@
 #name: PR ld/12921
 #as: --32
-#ld: -melf_i386
+#ld: -melf_i386 -z noseparate-code
 #readelf: -S --wide
 
 There are 7 section headers, starting at offset 0x[0-9a-f]+:
diff --git a/ld/testsuite/ld-i386/pr23486a.d b/ld/testsuite/ld-i386/pr23486a.d
new file mode 100644 (file)
index 0000000..41a6dcf
--- /dev/null
@@ -0,0 +1,10 @@
+#source: ../ld-x86-64/pr23486a.s
+#source: ../ld-x86-64/pr23486b.s
+#as: --32
+#ld: -r -m elf_i386
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+  Owner                 Data size      Description
+  GNU                  0x0000000c      NT_GNU_PROPERTY_TYPE_0
+      Properties: x86 ISA needed: i486, 586
diff --git a/ld/testsuite/ld-i386/pr23486b.d b/ld/testsuite/ld-i386/pr23486b.d
new file mode 100644 (file)
index 0000000..08019b7
--- /dev/null
@@ -0,0 +1,10 @@
+#source: ../ld-x86-64/pr23486b.s
+#source: ../ld-x86-64/pr23486a.s
+#as: --32
+#ld: -r -m elf_i386
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+  Owner                 Data size      Description
+  GNU                  0x0000000c      NT_GNU_PROPERTY_TYPE_0
+      Properties: x86 ISA needed: i486, 586
index 0ed91f5922a519bcbf835ec8070d18d18a4be39a..d03203c1e5bc926d72ecce569f5b52a02621152a 100644 (file)
@@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property
   Owner                 Data size      Description
   GNU                  0x[0-9a-f]+     NT_GNU_PROPERTY_TYPE_0
       Properties: stack size: 0x800000
-       x86 ISA used: 586, SSE
        x86 ISA needed: i486, 586
 #pass
index cb2bc15d9a327f4fc1d8139b470513ecd9417004..da295eb6c737cd359cea44d31823252dab069196 100644 (file)
@@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property
   Owner                 Data size      Description
   GNU                  0x[0-9a-f]+     NT_GNU_PROPERTY_TYPE_0
       Properties: stack size: 0x800000
-       x86 ISA used: i486, 586, SSE
        x86 ISA needed: i486, 586, SSE
 #pass
index 552965058c1a0d2a9b22bea9bcfd3140f035ddaa..e4141594b3b3f0b7f1b14d90a44c90df59fdd902 100644 (file)
@@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property
   Owner                 Data size      Description
   GNU                  0x[0-9a-f]+     NT_GNU_PROPERTY_TYPE_0
       Properties: stack size: 0x900000
-       x86 ISA used: i486, 586, SSE
        x86 ISA needed: i486, 586, SSE
 #pass
index 4bb35b00fb56a9ce4515a9682be9973249ee04fc..0aedea16145ef55a26bc4704c0fba4e3e6e2ceed 100644 (file)
@@ -6,6 +6,5 @@
 
 Displaying notes found in: .note.gnu.property
   Owner                 Data size      Description
-  GNU                  0x00000018      NT_GNU_PROPERTY_TYPE_0
-      Properties: x86 ISA used: i486, 586, SSE2, SSE3
-       x86 ISA needed: 586, SSE, SSE3, SSE4_1
+  GNU                  0x0000000c      NT_GNU_PROPERTY_TYPE_0
+      Properties: x86 ISA needed: 586, SSE, SSE3, SSE4_1
index 418d58a8f746d2a6c1895f8e2f0d59aa82480e92..bd69ac64783a4d3d6ede07943b84a5ff422506f7 100644 (file)
@@ -6,6 +6,5 @@
 
 Displaying notes found in: .note.gnu.property
   Owner                 Data size      Description
-  GNU                  0x00000018      NT_GNU_PROPERTY_TYPE_0
-      Properties: x86 ISA used: i486, 586, SSE2, SSE3
-       x86 ISA needed: 586, SSE, SSE3, SSE4_1
+  GNU                  0x0000000c      NT_GNU_PROPERTY_TYPE_0
+      Properties: x86 ISA needed: 586, SSE, SSE3, SSE4_1
index e261038f608155bc68c5ad4d612475d5fcee91a8..76d2a39f2cf2a904dd10c90b3e1d6e9158204ec9 100644 (file)
@@ -6,6 +6,5 @@
 
 Displaying notes found in: .note.gnu.property
   Owner                 Data size      Description
-  GNU                  0x00000018      NT_GNU_PROPERTY_TYPE_0
-      Properties: x86 ISA used: i486, 586, SSE2, SSE3
-       x86 ISA needed: 586, SSE, SSE3, SSE4_1
+  GNU                  0x0000000c      NT_GNU_PROPERTY_TYPE_0
+      Properties: x86 ISA needed: 586, SSE, SSE3, SSE4_1
index 25f3d2361e6635c82f6fe27bef75b98f0b5e8e66..e770ecffa51b028db2647197de62bec2af00f4bb 100644 (file)
@@ -6,6 +6,5 @@
 
 Displaying notes found in: .note.gnu.property
   Owner                 Data size      Description
-  GNU                  0x00000018      NT_GNU_PROPERTY_TYPE_0
-      Properties: x86 ISA used: i486, 586, SSE2, SSE3
-       x86 ISA needed: 586, SSE, SSE3, SSE4_1
+  GNU                  0x0000000c      NT_GNU_PROPERTY_TYPE_0
+      Properties: x86 ISA needed: 586, SSE, SSE3, SSE4_1
index 612d91402fdd4e1e04d19fc57a1d4571da45dc22..86892b96b58942516935a09fc76d734547f01a9a 100644 (file)
@@ -713,7 +713,7 @@ run_ld_link_exec_tests [list \
 # That does not happen for the pr23169 testcase where the resolver is
 # in the executable (which is relocated last by ld.so).
 if { [isnative]
-     && ![istarget "powerpc-*-*"] } {
+     && !([istarget "powerpc-*-*"] || [istarget "aarch64*-*-*"]) } {
 run_ld_link_exec_tests [list \
     [list \
        "Run pr23169a" \
index b22eaa12c9c700d2beb5e78d0bbac02e216f923c..f89855a08f9b5d7fe094db57cda42bbdc77ea34e 100644 (file)
@@ -2,4 +2,5 @@ SECTIONS {
  .text 0xa00 : { *(.text); *(.gnu.linkonce.t.*) }
  .gcc_except_table 0x2000 : { *(.gcc_except_table) }
  .eh_frame 0x4000 : { *(.eh_frame) }
+  /DISCARD/ : { *(.note.gnu.property) }
 }
index 0359ba28cb2ac1f0f33a4a1bc29c6ce11e82926a..de762966e5d8064ecb3ff9e734df234ba2d855b5 100644 (file)
@@ -221,7 +221,7 @@ set ppc64elftests {
      "tlsopt4"}
     {"TLS DLL" "-shared -melf64ppc --version-script tlsdll.ver" "" "-a64" {tlsdll.s}
      {} "tlsdll.so"}
-    {"TLS opt 5" "-melf64ppc --no-plt-align -shared --gc-sections --no-plt-localentry tmpdir/tlsdll.so" "" "-a64"  {tlsopt5.s}
+    {"TLS opt 5" "-melf64ppc -shared --hash-style=both --gc-sections --no-plt-localentry tmpdir/tlsdll.so" "" "-a64"  {tlsopt5.s}
      {{objdump -dr tlsopt5.d} {readelf -wf tlsopt5.wf}}
      "tlsopt5"}
     {"sym@tocbase" "-shared -melf64ppc" "" "-a64" {symtocbase-1.s symtocbase-2.s}
index 4521a9b427fdeee4c2982e3a101ef51072437396..4caf1832ea51f7a571f53fc30e620d8b4689139f 100644 (file)
@@ -8,6 +8,13 @@
 
 Disassembly of section \.text:
 
+.* <.*\.plt_call\.foo>:
+.*:    (18 00 41 f8|f8 41 00 18)       std     r2,24\(r1\)
+.*:    (28 80 82 e9|e9 82 80 28)       ld      r12,-32728\(r2\)
+.*:    (a6 03 89 7d|7d 89 03 a6)       mtctr   r12
+.*:    (20 04 80 4e|4e 80 04 20)       bctr
+       \.\.\.
+
 .* <.*\.plt_call\.__tls_get_addr_opt@@GLIBC_2\.22>:
 .*:    (00 00 63 e9|e9 63 00 00)       ld      r11,0\(r3\)
 .*:    (08 00 83 e9|e9 83 00 08)       ld      r12,8\(r3\)
@@ -19,17 +26,21 @@ Disassembly of section \.text:
 .*:    (a6 02 68 7d|7d 68 02 a6)       mflr    r11
 .*:    (08 00 61 f9|f9 61 00 08)       std     r11,8\(r1\)
 .*:    (18 00 41 f8|f8 41 00 18)       std     r2,24\(r1\)
-.*:    (28 80 82 e9|e9 82 80 28)       ld      r12,-32728\(r2\)
+.*:    (30 80 82 e9|e9 82 80 30)       ld      r12,-32720\(r2\)
 .*:    (a6 03 89 7d|7d 89 03 a6)       mtctr   r12
 .*:    (21 04 80 4e|4e 80 04 21)       bctrl
 .*:    (18 00 41 e8|e8 41 00 18)       ld      r2,24\(r1\)
 .*:    (08 00 61 e9|e9 61 00 08)       ld      r11,8\(r1\)
 .*:    (a6 03 68 7d|7d 68 03 a6)       mtlr    r11
 .*:    (20 00 80 4e|4e 80 00 20)       blr
+       \.\.\.
 
 .* <_start>:
 .*:    (08 80 62 38|38 62 80 08)       addi    r3,r2,-32760
-.*:    (b9 ff ff 4b|4b ff ff b9)       bl      .*
+.*:    (9d ff ff 4b|4b ff ff 9d)       bl      .* <.*\.plt_call\.__tls_get_addr_opt@@GLIBC_2\.22>
+.*:    (00 00 00 60|60 00 00 00)       nop
+.*:    (75 ff ff 4b|4b ff ff 75)       bl      .* <.*\.plt_call\.foo>
+.*:    (18 00 41 e8|e8 41 00 18)       ld      r2,24\(r1\)
 .*:    (00 00 00 60|60 00 00 00)       nop
 .*
 .*
@@ -50,5 +61,8 @@ Disassembly of section \.text:
 .*:    (08 00 6b e9|e9 6b 00 08)       ld      r11,8\(r11\)
 .*:    (20 04 80 4e|4e 80 04 20)       bctr
 
+.* <foo@plt>:
+.*     (c8 ff ff 4b|4b ff ff c8)       b       .*
+
 .* <__tls_get_addr_opt@plt>:
-.*:    (c8 ff ff 4b|4b ff ff c8)       b       .*
+.*:    (c4 ff ff 4b|4b ff ff c4)       b       .*
index 70902ef96a89c0a1b81898b4316402bf7a3976ee..7cb82db1f6565bbd80083cd7640a9b403b4ef1cb 100644 (file)
@@ -1,7 +1,10 @@
  .globl _start
+ .weak foo
 _start:
  .cfi_startproc
  addi 3,2,gd@got@tlsgd
  bl __tls_get_addr(gd@tlsgd)
  nop
+ bl foo
+ nop
  .cfi_endproc
index af8cb76d1ca525d0ee625bfadd7737892d92f53f..f0453610e085a2397c5df17d7d92ce328e2bac8b 100644 (file)
@@ -7,11 +7,10 @@ Contents of the \.eh_frame section:
   Data alignment factor: -8
   Return address column: 65
   Augmentation data:     1b
-
   DW_CFA_def_cfa: r1 ofs 0
 
 0+14 0+14 0+18 FDE cie=0+ pc=.*
-  DW_CFA_advance_loc: 48 to .*
+  DW_CFA_advance_loc: 80 to .*
   DW_CFA_offset_extended_sf: r65 at cfa\+8
   DW_CFA_advance_loc: 16 to .*
   DW_CFA_restore_extended: r65
index 5ff057a5e30f07f9a20a8e1392be96818ba5aad4..6eda1d2dc495451dc5dc78965ca92f2f83b57a40 100644 (file)
@@ -11,4 +11,6 @@ SECTIONS
     *(.data)
     *(.rw)
   }
+
+  /DISCARD/ : { *(.note.gnu.property) }
 }
index 723863995e1a31ed5e4752918e71e00ec714de0e..c3c4eddab4c2422a7fb7f296083bf0ee2bc2d472 100644 (file)
@@ -18,4 +18,5 @@ SECTIONS
     LONG (SIZEOF (.tdata))
     LONG (SIZEOF (.tbss))
   } :image
+  /DISCARD/ : { *(.note.gnu.property) }
 }
index 2c26639fc08e449e6b2b5772b0ac9e6ab09e2daa..6b0fde0eed8f6fc65fe6331f85dd7ac1ef2fefaa 100644 (file)
@@ -2,7 +2,7 @@
 #source: ../ld-i386/abs.s
 #source: ../ld-i386/zero.s
 #as: --64 -march=k1om
-#ld: -m elf_k1om
+#ld: -m elf_k1om -z noseparate-code
 #objdump: -rs -j .text
 
 .*:     file format .*
index 1fb96d44b7fbf22f1942fd31a7b8f2aabf472046..f87869f9d046faa8b92dc303836c6c95591865e8 100644 (file)
@@ -2,7 +2,7 @@
 #source: ../ld-i386/abs.s
 #source: ../ld-i386/zero.s
 #as: --64 -march=l1om
-#ld: -m elf_l1om
+#ld: -m elf_l1om -z noseparate-code
 #objdump: -rs -j .text
 #target: x86_64-*-linux*
 
index b24b018639ec542a91eec6dba54e131d81a43503..d99ab4685d06264eb5eb98c69c9ef3b6690f35b9 100644 (file)
@@ -1,7 +1,7 @@
 #name: Absolute non-overflowing relocs
 #source: ../ld-i386/abs.s
 #source: ../ld-i386/zero.s
-#ld:
+#ld: -z noseparate-code
 #objdump: -rs
 
 .*:     file format .*
index 07d17325d0413460a3b51a94cf21f0743f365c5e..2c503ffbaae70aba0f9885d57ce47fb5b8dd2c95 100644 (file)
@@ -1,6 +1,6 @@
 #name: PR ld/12718
 #as: --64
-#ld: -melf_x86_64
+#ld: -melf_x86_64 -z noseparate-code
 #readelf: -S --wide
 
 There are 5 section headers, starting at offset 0x[0-9a-f]+:
index 6fe6abee095c33a1b31b99b41419e24be9be2697..1162d55818ea9d6bce84a87c1021d2941bd6fc1a 100644 (file)
@@ -1,6 +1,6 @@
 #name: PR ld/12921
 #as: --64
-#ld: -melf_x86_64
+#ld: -melf_x86_64 -z noseparate-code
 #readelf: -S --wide
 
 There are 7 section headers, starting at offset 0x[0-9a-f]+:
diff --git a/ld/testsuite/ld-x86-64/pr23486a-x32.d b/ld/testsuite/ld-x86-64/pr23486a-x32.d
new file mode 100644 (file)
index 0000000..6d9fa68
--- /dev/null
@@ -0,0 +1,10 @@
+#source: pr23486a.s
+#source: pr23486b.s
+#as: --x32
+#ld: -r -m elf32_x86_64
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+  Owner                 Data size      Description
+  GNU                  0x0000000c      NT_GNU_PROPERTY_TYPE_0
+      Properties: x86 ISA needed: i486, 586
diff --git a/ld/testsuite/ld-x86-64/pr23486a.d b/ld/testsuite/ld-x86-64/pr23486a.d
new file mode 100644 (file)
index 0000000..dc2b7bf
--- /dev/null
@@ -0,0 +1,10 @@
+#source: pr23486a.s
+#source: pr23486b.s
+#as: --64 -defsym __64_bit__=1
+#ld: -r -m elf_x86_64
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+  Owner                 Data size      Description
+  GNU                  0x00000010      NT_GNU_PROPERTY_TYPE_0
+      Properties: x86 ISA needed: i486, 586
diff --git a/ld/testsuite/ld-x86-64/pr23486a.s b/ld/testsuite/ld-x86-64/pr23486a.s
new file mode 100644 (file)
index 0000000..a07d0c7
--- /dev/null
@@ -0,0 +1,30 @@
+       .section ".note.gnu.property", "a"
+.ifdef __64_bit__
+       .p2align 3
+.else
+       .p2align 2
+.endif
+       .long 1f - 0f           /* name length.  */
+       .long 4f - 1f           /* data length.  */
+       /* NT_GNU_PROPERTY_TYPE_0 */
+       .long 5                 /* note type.  */
+0:
+       .asciz "GNU"            /* vendor name.  */
+1:
+.ifdef __64_bit__
+       .p2align 3
+.else
+       .p2align 2
+.endif
+       /* GNU_PROPERTY_X86_ISA_1_USED */
+       .long 0xc0000000        /* pr_type.  */
+       .long 3f - 2f           /* pr_datasz.  */
+2:
+       .long 0xa
+3:
+.ifdef __64_bit__
+       .p2align 3
+.else
+       .p2align 2
+.endif
+4:
diff --git a/ld/testsuite/ld-x86-64/pr23486b-x32.d b/ld/testsuite/ld-x86-64/pr23486b-x32.d
new file mode 100644 (file)
index 0000000..0445e69
--- /dev/null
@@ -0,0 +1,10 @@
+#source: pr23486b.s
+#source: pr23486a.s
+#as: --x32
+#ld: -r -m elf32_x86_64
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+  Owner                 Data size      Description
+  GNU                  0x0000000c      NT_GNU_PROPERTY_TYPE_0
+      Properties: x86 ISA needed: i486, 586
diff --git a/ld/testsuite/ld-x86-64/pr23486b.d b/ld/testsuite/ld-x86-64/pr23486b.d
new file mode 100644 (file)
index 0000000..dd0fe88
--- /dev/null
@@ -0,0 +1,10 @@
+#source: pr23486b.s
+#source: pr23486a.s
+#as: --64 -defsym __64_bit__=1
+#ld: -r -m elf_x86_64
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+  Owner                 Data size      Description
+  GNU                  0x00000010      NT_GNU_PROPERTY_TYPE_0
+      Properties: x86 ISA needed: i486, 586
diff --git a/ld/testsuite/ld-x86-64/pr23486b.s b/ld/testsuite/ld-x86-64/pr23486b.s
new file mode 100644 (file)
index 0000000..c5167ee
--- /dev/null
@@ -0,0 +1,30 @@
+       .section ".note.gnu.property", "a"
+.ifdef __64_bit__
+       .p2align 3
+.else
+       .p2align 2
+.endif
+       .long 1f - 0f           /* name length.  */
+       .long 4f - 1f           /* data length.  */
+       /* NT_GNU_PROPERTY_TYPE_0 */
+       .long 5                 /* note type.  */
+0:
+       .asciz "GNU"            /* vendor name.  */
+1:
+.ifdef __64_bit__
+       .p2align 3
+.else
+       .p2align 2
+.endif
+       /* GNU_PROPERTY_X86_ISA_1_NEEDED */
+       .long 0xc0000001        /* pr_type.  */
+       .long 3f - 2f           /* pr_datasz.  */
+2:
+       .long 0x3
+3:
+.ifdef __64_bit__
+       .p2align 3
+.else
+       .p2align 2
+.endif
+4:
index 0ed91f5922a519bcbf835ec8070d18d18a4be39a..d03203c1e5bc926d72ecce569f5b52a02621152a 100644 (file)
@@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property
   Owner                 Data size      Description
   GNU                  0x[0-9a-f]+     NT_GNU_PROPERTY_TYPE_0
       Properties: stack size: 0x800000
-       x86 ISA used: 586, SSE
        x86 ISA needed: i486, 586
 #pass
index cb2bc15d9a327f4fc1d8139b470513ecd9417004..da295eb6c737cd359cea44d31823252dab069196 100644 (file)
@@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property
   Owner                 Data size      Description
   GNU                  0x[0-9a-f]+     NT_GNU_PROPERTY_TYPE_0
       Properties: stack size: 0x800000
-       x86 ISA used: i486, 586, SSE
        x86 ISA needed: i486, 586, SSE
 #pass
index 552965058c1a0d2a9b22bea9bcfd3140f035ddaa..e4141594b3b3f0b7f1b14d90a44c90df59fdd902 100644 (file)
@@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property
   Owner                 Data size      Description
   GNU                  0x[0-9a-f]+     NT_GNU_PROPERTY_TYPE_0
       Properties: stack size: 0x900000
-       x86 ISA used: i486, 586, SSE
        x86 ISA needed: i486, 586, SSE
 #pass
index be8cc9efb1b1914d338f2038e43d19b16b7fb489..239cf622ff57353bace680483465cf7de5e9a999 100644 (file)
 3:
 
        .section ".note.gnu.property", "a"
+.ifdef __64_bit__
        .p2align 3
+.else
+       .p2align 2
+.endif
        .long 1f - 0f           /* name length.  */
        .long 3f - 1f           /* data length.  */
        /* NT_GNU_PROPERTY_TYPE_0 */
index 011426f5a4d988e699f38c9995b2131fdb824c22..4cec728dc743908780bbeffc59723e42017593d6 100644 (file)
@@ -6,6 +6,5 @@
 
 Displaying notes found in: .note.gnu.property
   Owner                 Data size      Description
-  GNU                  0x00000018      NT_GNU_PROPERTY_TYPE_0
-      Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
-       x86 ISA needed: i486, 586, SSE2, SSE3
+  GNU                  0x0000000c      NT_GNU_PROPERTY_TYPE_0
+      Properties: x86 ISA needed: i486, 586, SSE2, SSE3
index 1b4229a0378520e42b0c73675edcfcc6a9bc4a58..a8df49a351b46bbd42b0c120755625f6e9d08101 100644 (file)
@@ -6,6 +6,5 @@
 
 Displaying notes found in: .note.gnu.property
   Owner                 Data size      Description
-  GNU                  0x00000020      NT_GNU_PROPERTY_TYPE_0
-      Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
-       x86 ISA needed: i486, 586, SSE2, SSE3
+  GNU                  0x00000010      NT_GNU_PROPERTY_TYPE_0
+      Properties: x86 ISA needed: i486, 586, SSE2, SSE3
index 290ed6abf127dd41b91f4c95483d0b0e4040ef39..c112626711217fce8a38b029949b76404899d615 100644 (file)
@@ -6,6 +6,5 @@
 
 Displaying notes found in: .note.gnu.property
   Owner                 Data size      Description
-  GNU                  0x00000018      NT_GNU_PROPERTY_TYPE_0
-      Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
-       x86 ISA needed: i486, 586, SSE2, SSE3
+  GNU                  0x0000000c      NT_GNU_PROPERTY_TYPE_0
+      Properties: x86 ISA needed: i486, 586, SSE2, SSE3
index 1142e0327219f0b0c44484c20169177c60dc7dd0..f10dffdc2c371ca0826f17b829595a55ee69d666 100644 (file)
@@ -6,6 +6,5 @@
 
 Displaying notes found in: .note.gnu.property
   Owner                 Data size      Description
-  GNU                  0x00000020      NT_GNU_PROPERTY_TYPE_0
-      Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
-       x86 ISA needed: i486, 586, SSE2, SSE3
+  GNU                  0x00000010      NT_GNU_PROPERTY_TYPE_0
+      Properties: x86 ISA needed: i486, 586, SSE2, SSE3
index 819542d1811d3d5c64aaff04ae3ae8dfecc6cefe..0147a3c7b631dfa84bdf6c90c2a03bd0490cf168 100644 (file)
@@ -6,6 +6,5 @@
 
 Displaying notes found in: .note.gnu.property
   Owner                 Data size      Description
-  GNU                  0x00000018      NT_GNU_PROPERTY_TYPE_0
-      Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
-       x86 ISA needed: i486, 586, SSE2, SSE3
+  GNU                  0x0000000c      NT_GNU_PROPERTY_TYPE_0
+      Properties: x86 ISA needed: i486, 586, SSE2, SSE3
index 4c5d0e0a18a31d904e9ec2d10de7f184234617c3..1f8c2dc92900c5776cf96ac051f2fc2e7ae12a2e 100644 (file)
@@ -6,6 +6,5 @@
 
 Displaying notes found in: .note.gnu.property
   Owner                 Data size      Description
-  GNU                  0x00000020      NT_GNU_PROPERTY_TYPE_0
-      Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
-       x86 ISA needed: i486, 586, SSE2, SSE3
+  GNU                  0x00000010      NT_GNU_PROPERTY_TYPE_0
+      Properties: x86 ISA needed: i486, 586, SSE2, SSE3
index ba181e0bc59f73d43f0dd6e269282173c2f9088e..7ca2539ca50f3d2900d2672877f3ade17a910860 100644 (file)
@@ -6,6 +6,5 @@
 
 Displaying notes found in: .note.gnu.property
   Owner                 Data size      Description
-  GNU                  0x00000018      NT_GNU_PROPERTY_TYPE_0
-      Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
-       x86 ISA needed: i486, 586, SSE2, SSE3
+  GNU                  0x0000000c      NT_GNU_PROPERTY_TYPE_0
+      Properties: x86 ISA needed: i486, 586, SSE2, SSE3
index 5216f385dd3f3fa0ca912ee0761eea02a87a0cd3..f66a40e44902ed83d7740f2cf747bb95e592e7c1 100644 (file)
@@ -6,6 +6,5 @@
 
 Displaying notes found in: .note.gnu.property
   Owner                 Data size      Description
-  GNU                  0x00000020      NT_GNU_PROPERTY_TYPE_0
-      Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
-       x86 ISA needed: i486, 586, SSE2, SSE3
+  GNU                  0x00000010      NT_GNU_PROPERTY_TYPE_0
+      Properties: x86 ISA needed: i486, 586, SSE2, SSE3
index 6edb9e86f45cb8bae6511d2686af3407fc2605f2..ae21e554adf43aa003eccf804bad24c6a2fda1d9 100644 (file)
@@ -403,6 +403,10 @@ run_dump_test "pr23372a"
 run_dump_test "pr23372a-x32"
 run_dump_test "pr23372b"
 run_dump_test "pr23372b-x32"
+run_dump_test "pr23486a"
+run_dump_test "pr23486a-x32"
+run_dump_test "pr23486b"
+run_dump_test "pr23486b-x32"
 
 if { ![istarget "x86_64-*-linux*"] && ![istarget "x86_64-*-nacl*"]} {
     return
index cfbefe9028e03598b7e071a1bf27c0bc7f5de76c..109509188200cf8220da0a347f00c89488590345 100644 (file)
@@ -1482,7 +1482,10 @@ proc run_ld_link_exec_tests { ldtests args } {
            continue
        }
 
-       if { [ string match "c++" $lang ] } {
+       if { [ string match "asm" $lang ] } {
+           set link_proc ld_link
+           set link_cmd $ld
+       } elseif { [ string match "c++" $lang ] } {
            set link_proc ld_link
            set link_cmd $CXX
        } else {
index d04963a9fa18936a3117f5b366f8007458277cff..25ddce1378e8ff800c607cfab5e7f489cc628246 100644 (file)
@@ -1,3 +1,19 @@
+2018-07-18  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR gas/23418
+       * i386-opc.h (Byte): Update comments.
+       (Word): Likewise.
+       (Dword): Likewise.
+       (Fword): Likewise.
+       (Qword): Likewise.
+       (Tbyte): Likewise.
+       (Xmmword): Likewise.
+       (Ymmword): Likewise.
+       (Zmmword): Likewise.
+       * i386-opc.tbl: Split vcvtps2qq, vcvtps2uqq, vcvttps2qq and
+       vcvttps2uqq.
+       * i386-tbl.h: Regenerated.
+
 2018-07-18  Nick Clifton  <nickc@redhat.com>
 
        2.31.1 Release point.
index 9a22b3c95f5fb85543ab5e0ea633d5cd41365429..f43b5e11eb27c4bfb1fd849f7e607c242a65c2ed 100644 (file)
@@ -736,23 +736,23 @@ enum
   RegMem,
   /* Memory.  */
   Mem,
-  /* BYTE memory. */
+  /* BYTE size. */
   Byte,
-  /* WORD memory. 2 byte */
+  /* WORD size. 2 byte */
   Word,
-  /* DWORD memory. 4 byte */
+  /* DWORD size. 4 byte */
   Dword,
-  /* FWORD memory. 6 byte */
+  /* FWORD size. 6 byte */
   Fword,
-  /* QWORD memory. 8 byte */
+  /* QWORD size. 8 byte */
   Qword,
-  /* TBYTE memory. 10 byte */
+  /* TBYTE size. 10 byte */
   Tbyte,
-  /* XMMWORD memory. */
+  /* XMMWORD size. */
   Xmmword,
-  /* YMMWORD memory. */
+  /* YMMWORD size. */
   Ymmword,
-  /* ZMMWORD memory.  */
+  /* ZMMWORD size.  */
   Zmmword,
   /* Unspecified memory size.  */
   Unspecified,
index fad588ae3ffbfce0db3abb139eb4186b58b321d5..84ade356666d41cafddabe2a205f4e74e5857999 100644 (file)
@@ -5408,11 +5408,13 @@ vcvtpd2uqq, 2, 0x6679, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|
 vcvtpd2uqq, 3, 0x6679, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|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|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|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=2|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM }
+vcvtps2qq, 2, 0x667B, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Qword|Unspecified|BaseIndex, RegXMM }
 vcvtps2qq, 2, 0x667B, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Broadcast|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|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|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=2|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM }
+vcvtps2uqq, 2, 0x6679, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Qword|Unspecified|BaseIndex, RegXMM }
 vcvtps2uqq, 2, 0x6679, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Broadcast|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 }
 
@@ -5442,11 +5444,13 @@ vcvttpd2uqq, 2, 0x6678, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3
 vcvttpd2uqq, 3, 0x6678, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|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|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|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=2|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM }
+vcvttps2qq, 2, 0x667A, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Qword|Unspecified|BaseIndex, RegXMM }
 vcvttps2qq, 2, 0x667A, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Broadcast|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|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|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=2|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM }
+vcvttps2uqq, 2, 0x6678, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Qword|Unspecified|BaseIndex, RegXMM }
 vcvttps2uqq, 2, 0x6678, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Broadcast|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 }
 
index d513275debddfbe56c9e84507b194cfcd4fcbf59..5c37eea6d7c09216c549939c893078ab7baeb086 100644 (file)
@@ -87881,6 +87881,23 @@ const insn_template i386_optab[] =
       { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
          0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
          0, 0, 0 } } } },
+  { "vcvtps2qq", 2, 0x667B, None, 1,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 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, 2, 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, 0, 0,
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+         0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+         0, 0, 0 } } } },
   { "vcvtps2qq", 2, 0x667B, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
@@ -87892,8 +87909,8 @@ const insn_template i386_optab[] =
       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, 2, 3, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0,
       0, 0 },
-    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 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 } },
       { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
          0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
@@ -87952,6 +87969,23 @@ const insn_template i386_optab[] =
       { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
          0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
          0, 0, 0 } } } },
+  { "vcvtps2uqq", 2, 0x6679, None, 1,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 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, 2, 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, 0, 0,
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+         0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+         0, 0, 0 } } } },
   { "vcvtps2uqq", 2, 0x6679, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
@@ -87963,8 +87997,8 @@ const insn_template i386_optab[] =
       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, 2, 3, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0,
       0, 0 },
-    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 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 } },
       { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
          0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
@@ -88412,6 +88446,23 @@ const insn_template i386_optab[] =
       { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
          0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
          0, 0, 0 } } } },
+  { "vcvttps2qq", 2, 0x667A, None, 1,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 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, 2, 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, 0, 0,
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+         0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+         0, 0, 0 } } } },
   { "vcvttps2qq", 2, 0x667A, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
@@ -88423,8 +88474,8 @@ const insn_template i386_optab[] =
       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, 2, 3, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0,
       0, 0 },
-    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 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 } },
       { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
          0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
@@ -88483,6 +88534,23 @@ const insn_template i386_optab[] =
       { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
          0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
          0, 0, 0 } } } },
+  { "vcvttps2uqq", 2, 0x6678, None, 1,
+    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 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, 2, 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, 0, 0,
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+         0, 0, 0 } },
+      { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
+         0, 0, 0 } } } },
   { "vcvttps2uqq", 2, 0x6678, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
@@ -88494,8 +88562,8 @@ const insn_template i386_optab[] =
       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, 2, 3, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0,
       0, 0 },
-    { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 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 } },
       { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
          0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
index ef75e38e7e155816c809f12a59198a4ebbd28d79..d8a9cce1e27bd58c84b0833909156752f2b54ef4 100644 (file)
@@ -1126,7 +1126,7 @@ e561 tbeginc SIL_RDU "constrained transaction begin" zEC12 zarch htm
 b2f8 tend S_00 "transaction end" zEC12 zarch htm
 c7 bpp SMI_U0RDP "branch prediction preload" zEC12 zarch
 c5 bprp MII_UPP "branch prediction relative preload" zEC12 zarch
-b2e8 ppa RRF_U0RR "perform processor assist" zEC12 zarch
+b2e8 ppa RRF_U0RR "perform processor assist" zEC12 zarch htm
 b2fa niai IE_UU "next instruction access intent" zEC12 zarch
 b98f crdte RRF_RURR2 "compare and replace DAT table entry" zEC12 zarch optparm
 e3000000009f lat RXY_RRRD "load and trap 32 bit" zEC12 zarch