public inbox for archer-commits@sourceware.org
help / color / mirror / Atom feed
From: jkratoch@sourceware.org
To: archer-commits@sourceware.org
Subject: [SCM]  users/jkratoch/dwarf5gcc-gdb: Merge branch 'dwarf5gcc-gdb-callsite-macro' into dwarf5gcc-gdb-callsite-macro-data16
Date: Fri, 18 Nov 2016 19:20:00 -0000	[thread overview]
Message-ID: <20161118192057.43923.qmail@sourceware.org> (raw)

The branch, users/jkratoch/dwarf5gcc-gdb has been updated
       via  94fcf1fe5ccdc29f54984f37f2d0fbcd95d6c867 (commit)
       via  24ea3d670bb16abc461f3006440b3a411235111b (commit)
       via  1ea8cf87a0e31d1e4ebb3832ddc1bf29067e7b81 (commit)
       via  a933e669c498ec393bb5a98921e918934280b131 (commit)
       via  940be4a3470ffdd54cc46e06ca09a07310083f6e (commit)
       via  cedc43950776d9683cb8c88563b6ba0981bedc9e (commit)
       via  8504e0974cf4b67680a11208b16caa2d3c77b838 (commit)
       via  bb050a6932c4b0ea86202fe62bed2d94999f77ad (commit)
       via  cc133f9f118ef4afd93da0ecba48151488c41c74 (commit)
       via  a85db0a6188b89ef49a1bd0f0ed435adc133b3ae (commit)
       via  535aade664ac4170fe82e52c9addd686156220a1 (commit)
       via  ddc5804ebd4b2be29ad4e3e259f5c6e907f34f26 (commit)
       via  1706852c3c6c1d39f949c933d37647d02509b9cb (commit)
       via  59d2699cfd30f9defc454be17415c0a518ece32b (commit)
       via  a4ddf8dc72f0ac10c3459a91949eb1bdb07ed10d (commit)
       via  4d17eaece8b31e642acaf4d77fe961ad8e3aaf50 (commit)
       via  ef0f5d7cc3b2082c94beffa7c9c1a8acd8eaa427 (commit)
       via  aba19b625f34fb3d61263fe8044cf0c6d8804570 (commit)
       via  9d2cdc86574bda0f1013be8cdc166d86b6d032bc (commit)
       via  c2c4ff8d52a2cd3263a547b0384692498714aa1b (commit)
       via  28617675c264213180a599bb4327bf162029636a (commit)
       via  ccfc90a39b78b7bc4173cd9ead49d2aa59695378 (commit)
       via  3f06e55061d0d8f72dfd11f6c432c23f45d9b597 (commit)
       via  6ec49e7c0aeb6d98e379319b565aee2c89388615 (commit)
       via  cd42d70b4d7e92dcc6c533e012ab8af122de7b9e (commit)
       via  23beba32dc3031279641e032855bc1fd41768851 (commit)
       via  470dd0a647c95a2e88c5b0f8df538826b08959a8 (commit)
       via  5443506ee45cb94769db7e76dd2021a96f2f0680 (commit)
       via  3b165252e882c05c8217f888194877224295592d (commit)
       via  f2ff9acd32b4667ee16a03ca8d10fd8b99e22f46 (commit)
       via  66be918f5f9f78d74c70aa332756286ff9d0ccf2 (commit)
       via  7c2683c40f745397e80b6df4edf8265ecb6fd194 (commit)
       via  2f45d5e77c1e23f582b2cb41c1bc62cef0d8d6a2 (commit)
       via  200069c74f42ffcc726b9995a46971a86286a256 (commit)
       via  19f1935d91bfabbe4176ffdaca95bc789b593153 (commit)
       via  fa98319231a95aca0313878443143d3f92aca5e1 (commit)
       via  256ae5dbc73d1348850f86ee77a0dc3b04bc7cc0 (commit)
       via  33cc7d368f420326606695daafd6292e2779c6af (commit)
       via  41b56feb5063aee4fefb4a991eb796d1e8a7475e (commit)
       via  df433d316277ff5293832d3cd6cbc30b5c38dec0 (commit)
       via  1a2f3d7ff1d79b1290704e48c71e905b987393a6 (commit)
      from  6f67c9b86a08bd21368962450dac9aa3cc7cea77 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email.

- Log -----------------------------------------------------------------
commit 94fcf1fe5ccdc29f54984f37f2d0fbcd95d6c867
Merge: 2f45d5e 24ea3d6
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date:   Fri Nov 18 20:20:32 2016 +0100

    Merge branch 'dwarf5gcc-gdb-callsite-macro' into dwarf5gcc-gdb-callsite-macro-data16

commit 24ea3d670bb16abc461f3006440b3a411235111b
Merge: 84fd5bc 1ea8cf8
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date:   Fri Nov 18 20:20:31 2016 +0100

    Merge branch 'dwarf5gcc-gdb-callsite' into dwarf5gcc-gdb-callsite-macro

commit 1ea8cf87a0e31d1e4ebb3832ddc1bf29067e7b81
Merge: 12df202 a933e66
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date:   Fri Nov 18 20:20:30 2016 +0100

    Merge branch 'dwarf5gcc-gdb' into dwarf5gcc-gdb-callsite

commit a933e669c498ec393bb5a98921e918934280b131
Merge: cedc439 940be4a
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date:   Fri Nov 18 20:20:28 2016 +0100

    Merge branch 'dwarf5gcc' into dwarf5gcc-gdb

commit cedc43950776d9683cb8c88563b6ba0981bedc9e
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date:   Fri Nov 18 20:19:33 2016 +0100

    .

commit 23beba32dc3031279641e032855bc1fd41768851
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date:   Thu Nov 17 20:54:39 2016 +0100

    .

commit 2f45d5e77c1e23f582b2cb41c1bc62cef0d8d6a2
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date:   Thu Nov 17 10:42:14 2016 +0100

    .

-----------------------------------------------------------------------

Summary of changes:
 bfd/ChangeLog                                      |   14 +
 bfd/elf32-metag.c                                  |   11 +-
 bfd/elfxx-sparc.c                                  |   22 +-
 bfd/version.h                                      |    2 +-
 binutils/ChangeLog                                 |    4 +
 binutils/cxxfilt.c                                 |    1 +
 binutils/dwarf.c                                   |   43 +-
 gas/ChangeLog                                      |   56 +
 gas/config/tc-aarch64.c                            |   24 +
 gas/config/tc-arc.c                                |   77 +-
 gas/testsuite/gas/aarch64/advsimd-armv8_3.d        |   33 +
 gas/testsuite/gas/aarch64/advsimd-armv8_3.s        |   36 +
 gas/testsuite/gas/aarch64/fp-armv8_3.d             |   10 +
 gas/testsuite/gas/aarch64/fp-armv8_3.s             |    5 +
 gas/testsuite/gas/aarch64/illegal-fcmla.d          |    2 +
 gas/testsuite/gas/aarch64/illegal-fcmla.l          |   17 +
 gas/testsuite/gas/aarch64/illegal-fcmla.s          |   25 +
 gas/testsuite/gas/aarch64/illegal-fjcvtzs.d        |    2 +
 gas/testsuite/gas/aarch64/illegal-fjcvtzs.l        |    8 +
 gas/testsuite/gas/aarch64/illegal-fjcvtzs.s        |   14 +
 gas/testsuite/gas/aarch64/illegal-ldapr.d          |    2 +
 gas/testsuite/gas/aarch64/illegal-ldapr.l          |   16 +
 gas/testsuite/gas/aarch64/illegal-ldapr.s          |   25 +
 gas/testsuite/gas/aarch64/illegal-ldraa.d          |    2 +
 gas/testsuite/gas/aarch64/illegal-ldraa.l          |   35 +
 gas/testsuite/gas/aarch64/illegal-ldraa.s          |   44 +
 gas/testsuite/gas/aarch64/illegal-nofp-armv8_3.d   |    2 +
 gas/testsuite/gas/aarch64/illegal-nofp-armv8_3.l   |    3 +
 gas/testsuite/gas/aarch64/illegal-nofp-armv8_3.s   |    6 +
 gas/testsuite/gas/aarch64/ldst-exclusive-armv8_3.d |   20 +
 gas/testsuite/gas/aarch64/ldst-exclusive-armv8_3.s |   22 +
 gas/testsuite/gas/aarch64/pac.d                    |   22 +
 gas/testsuite/gas/aarch64/pac.s                    |   23 +
 gas/testsuite/gas/arc/cl-warn.s                    |    5 +
 gas/testsuite/gas/arc/cpu-pseudop-1.d              |   12 +
 gas/testsuite/gas/arc/cpu-pseudop-1.s              |    6 +
 gas/testsuite/gas/arc/cpu-pseudop-2.d              |   11 +
 gas/testsuite/gas/arc/cpu-pseudop-2.s              |    5 +
 gas/testsuite/gas/arc/cpu-warn2.s                  |    4 +
 gdb/ChangeLog                                      |  290 ++
 gdb/Makefile.in                                    |  835 +----
 gdb/NEWS                                           |    5 +
 gdb/ada-lang.c                                     |   14 +-
 gdb/c-exp.y                                        |   28 +-
 gdb/configure                                      |   97 -
 gdb/configure.ac                                   |   11 -
 gdb/ctf.c                                          |    5 -
 gdb/doc/ChangeLog                                  |    5 +
 gdb/doc/gdb.texinfo                                |    2 +-
 gdb/dwarf2loc.c                                    |   21 +-
 gdb/dwarf2read.c                                   |  415 +-
 gdb/findvar.c                                      |   26 +-
 gdb/frame-unwind.c                                 |    3 +-
 gdb/frame.c                                        |  121 +-
 gdb/frame.h                                        |   16 +-
 gdb/gdbserver/ChangeLog                            |   13 +
 gdb/gdbserver/Makefile.in                          |   36 +-
 gdb/gdbserver/configure                            |   97 -
 gdb/gdbserver/configure.ac                         |   11 -
 gdb/python/py-unwind.c                             |    7 +-
 gdb/sentinel-frame.c                               |    2 +-
 gdb/testsuite/ChangeLog                            |   18 +
 gdb/testsuite/Makefile.in                          |   88 +-
 gdb/testsuite/configure                            |   99 -
 gdb/testsuite/configure.ac                         |   11 -
 gdb/testsuite/gdb.python/py-recurse-unwind.c       |    6 +-
 gdb/testsuite/gdb.python/py-recurse-unwind.exp     |   63 +-
 gdb/testsuite/gdb.python/py-recurse-unwind.py      |   29 +-
 gdb/tracepoint.c                                   |   60 +-
 gdb/tracepoint.h                                   |    3 +-
 gdb/valarith.c                                     |    2 +-
 gdb/valops.c                                       |   13 +-
 gdb/value.c                                        |   47 +-
 gdb/value.h                                        |   16 +-
 include/ChangeLog                                  |   28 +
 include/demangle.h                                 |   33 +-
 include/opcode/aarch64.h                           |    7 +
 libiberty/ChangeLog                                |   66 +
 libiberty/Makefile.in                              |   13 +
 libiberty/configure                                |    3 +-
 libiberty/configure.ac                             |    3 +-
 libiberty/cp-demangle.c                            |  197 +-
 libiberty/cplus-dem.c                              |   69 +-
 libiberty/hashtab.c                                |   20 +-
 libiberty/regex.c                                  |    8 +-
 libiberty/rust-demangle.c                          |  348 ++
 libiberty/testsuite/Makefile.in                    |    7 +-
 libiberty/testsuite/demangle-expected              |   47 +
 libiberty/testsuite/rust-demangle-expected         |  161 +
 opcodes/ChangeLog                                  |   50 +
 opcodes/aarch64-asm-2.c                            | 1038 +++---
 opcodes/aarch64-asm.c                              |   74 +-
 opcodes/aarch64-asm.h                              |    2 +
 opcodes/aarch64-dis-2.c                            | 4551 ++++++++++----------
 opcodes/aarch64-dis.c                              |   63 +
 opcodes/aarch64-dis.h                              |    2 +
 opcodes/aarch64-opc-2.c                            |  117 +-
 opcodes/aarch64-opc.c                              |   64 +-
 opcodes/aarch64-opc.h                              |    4 +
 opcodes/aarch64-tbl.h                              |   54 +
 100 files changed, 5744 insertions(+), 4471 deletions(-)
 create mode 100644 gas/testsuite/gas/aarch64/advsimd-armv8_3.d
 create mode 100644 gas/testsuite/gas/aarch64/advsimd-armv8_3.s
 create mode 100644 gas/testsuite/gas/aarch64/fp-armv8_3.d
 create mode 100644 gas/testsuite/gas/aarch64/fp-armv8_3.s
 create mode 100644 gas/testsuite/gas/aarch64/illegal-fcmla.d
 create mode 100644 gas/testsuite/gas/aarch64/illegal-fcmla.l
 create mode 100644 gas/testsuite/gas/aarch64/illegal-fcmla.s
 create mode 100644 gas/testsuite/gas/aarch64/illegal-fjcvtzs.d
 create mode 100644 gas/testsuite/gas/aarch64/illegal-fjcvtzs.l
 create mode 100644 gas/testsuite/gas/aarch64/illegal-fjcvtzs.s
 create mode 100644 gas/testsuite/gas/aarch64/illegal-ldapr.d
 create mode 100644 gas/testsuite/gas/aarch64/illegal-ldapr.l
 create mode 100644 gas/testsuite/gas/aarch64/illegal-ldapr.s
 create mode 100644 gas/testsuite/gas/aarch64/illegal-ldraa.d
 create mode 100644 gas/testsuite/gas/aarch64/illegal-ldraa.l
 create mode 100644 gas/testsuite/gas/aarch64/illegal-ldraa.s
 create mode 100644 gas/testsuite/gas/aarch64/illegal-nofp-armv8_3.d
 create mode 100644 gas/testsuite/gas/aarch64/illegal-nofp-armv8_3.l
 create mode 100644 gas/testsuite/gas/aarch64/illegal-nofp-armv8_3.s
 create mode 100644 gas/testsuite/gas/aarch64/ldst-exclusive-armv8_3.d
 create mode 100644 gas/testsuite/gas/aarch64/ldst-exclusive-armv8_3.s
 create mode 100644 gas/testsuite/gas/arc/cl-warn.s
 create mode 100644 gas/testsuite/gas/arc/cpu-pseudop-1.d
 create mode 100644 gas/testsuite/gas/arc/cpu-pseudop-1.s
 create mode 100644 gas/testsuite/gas/arc/cpu-pseudop-2.d
 create mode 100644 gas/testsuite/gas/arc/cpu-pseudop-2.s
 create mode 100644 gas/testsuite/gas/arc/cpu-warn2.s
 create mode 100644 libiberty/rust-demangle.c
 create mode 100644 libiberty/testsuite/rust-demangle-expected

First 500 lines of diff:
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index fcc5b1c..8a18a6d 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,17 @@
+2016-11-18  James Clarke  <jrtc27@jrtc27.com>
+
+	* elfxx-sparc.c (_bfd_sparc_elf_relocate_section): Don't convert
+	R_SPARC_GOTDATA_OP_HIX22 and R_SPARC_GOTDATA_OP_LOX10 to
+	R_SPARC_GOT* for non-local references. Instead, treat them like
+	R_SPARC_GOTDATA_HIX22/R_SPARC_GOTDATA_LOX10 when filling in the
+	immediate with the calculated relocation.
+
+2016-11-18  Nick Clifton  <nickc@redhat.com>
+
+	PR ld/20675
+	* elf32-metag.c (elf_metag_relocate_section): Replace abort with
+	an informative error message.
+
 2016-11-15  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
 
 	PR ld/20789
diff --git a/bfd/elf32-metag.c b/bfd/elf32-metag.c
index 1557a37..ac78324 100644
--- a/bfd/elf32-metag.c
+++ b/bfd/elf32-metag.c
@@ -1820,7 +1820,7 @@ elf_metag_relocate_section (bfd *output_bfd,
 	      }
 
 	    if (tls_type == GOT_UNKNOWN)
-	      abort();
+	      abort ();
 
 	    if ((off & 1) != 0)
 	      off &= ~1;
@@ -1880,7 +1880,14 @@ elf_metag_relocate_section (bfd *output_bfd,
 		    else
 		      {
 			/* We don't support changing the TLS model.  */
-			abort ();
+			/* PR 20675 */
+			if (bfd_link_pic (info))
+			  _bfd_error_handler (_("%B(%A): multiple TLS models are not supported"),
+					      input_bfd, input_section, name);
+			else
+			  _bfd_error_handler (_("%B(%A): shared library symbol %s encountered whilst performing a static link"),
+					      input_bfd, input_section, name);
+			return FALSE;
 		      }
 
 		    cur_off += 8;
diff --git a/bfd/elfxx-sparc.c b/bfd/elfxx-sparc.c
index db8058f..e1c7b22 100644
--- a/bfd/elfxx-sparc.c
+++ b/bfd/elfxx-sparc.c
@@ -3164,14 +3164,12 @@ _bfd_sparc_elf_relocate_section (bfd *output_bfd,
 	case R_SPARC_GOTDATA_OP_HIX22:
 	case R_SPARC_GOTDATA_OP_LOX10:
 	  if (SYMBOL_REFERENCES_LOCAL (info, h))
-	    r_type = (r_type == R_SPARC_GOTDATA_OP_HIX22
-		      ? R_SPARC_GOTDATA_HIX22
-		      : R_SPARC_GOTDATA_LOX10);
-	  else
-	    r_type = (r_type == R_SPARC_GOTDATA_OP_HIX22
-		      ? R_SPARC_GOT22
-		      : R_SPARC_GOT10);
-	  howto = _bfd_sparc_elf_howto_table + r_type;
+	    {
+	      r_type = (r_type == R_SPARC_GOTDATA_OP_HIX22
+			? R_SPARC_GOTDATA_HIX22
+			: R_SPARC_GOTDATA_LOX10);
+	      howto = _bfd_sparc_elf_howto_table + r_type;
+	    }
 	  break;
 
 	case R_SPARC_GOTDATA_OP:
@@ -3193,6 +3191,8 @@ _bfd_sparc_elf_relocate_section (bfd *output_bfd,
 	  relocation = gdopoff (info, relocation);
 	  break;
 
+	case R_SPARC_GOTDATA_OP_HIX22:
+	case R_SPARC_GOTDATA_OP_LOX10:
 	case R_SPARC_GOT10:
 	case R_SPARC_GOT13:
 	case R_SPARC_GOT22:
@@ -4017,7 +4017,8 @@ _bfd_sparc_elf_relocate_section (bfd *output_bfd,
 	  r = bfd_reloc_ok;
 	}
       else if (r_type == R_SPARC_HIX22
-	       || r_type == R_SPARC_GOTDATA_HIX22)
+	       || r_type == R_SPARC_GOTDATA_HIX22
+	       || r_type == R_SPARC_GOTDATA_OP_HIX22)
 	{
 	  bfd_vma x;
 
@@ -4036,7 +4037,8 @@ _bfd_sparc_elf_relocate_section (bfd *output_bfd,
 				  relocation);
 	}
       else if (r_type == R_SPARC_LOX10
-	       || r_type == R_SPARC_GOTDATA_LOX10)
+	       || r_type == R_SPARC_GOTDATA_LOX10
+	       || r_type == R_SPARC_GOTDATA_OP_LOX10)
 	{
 	  bfd_vma x;
 
diff --git a/bfd/version.h b/bfd/version.h
index e6f720e..c74b66c 100644
--- a/bfd/version.h
+++ b/bfd/version.h
@@ -1,4 +1,4 @@
-#define BFD_VERSION_DATE 20161116
+#define BFD_VERSION_DATE 20161118
 #define BFD_VERSION @bfd_version@
 #define BFD_VERSION_STRING  @bfd_version_package@ @bfd_version_string@
 #define REPORT_BUGS_TO @report_bugs_to@
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 3347bdb..bbeec9c 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,7 @@
+2016-11-16  Mark Wielaard  <mark@klomp.org>
+
+	* cxxfilt.c (main): Recognize rust_demangling.
+
 2016-11-14  Rudy  <jacky.chouchou@yandex.ru>
 
 	PR binutils/20814
diff --git a/binutils/cxxfilt.c b/binutils/cxxfilt.c
index d5863ee..21e5b0d 100644
--- a/binutils/cxxfilt.c
+++ b/binutils/cxxfilt.c
@@ -241,6 +241,7 @@ main (int argc, char **argv)
     case gnat_demangling:
     case gnu_v3_demangling:
     case dlang_demangling:
+    case rust_demangling:
     case auto_demangling:
       valid_symbols = standard_symbol_characters ();
       break;
diff --git a/binutils/dwarf.c b/binutils/dwarf.c
index 441ace7..fe07dd4 100644
--- a/binutils/dwarf.c
+++ b/binutils/dwarf.c
@@ -2460,9 +2460,13 @@ process_debug_info (struct dwarf_section *section,
 
       this_set = find_cu_tu_set_v2 (cu_offset, do_types);
 
-      if (compunit.cu_version >= 5)
+      if (compunit.cu_version < 5)
+	compunit.cu_unit_type = DW_UT_compile;
+      else
 	{
 	  SAFE_BYTE_GET_AND_INC (compunit.cu_unit_type, hdrptr, 1, end);
+	  if (compunit.cu_unit_type == DW_UT_type)
+	    do_types = 1;
 
 	  SAFE_BYTE_GET_AND_INC (compunit.cu_pointer_size, hdrptr, 1, end);
 	}
@@ -2491,29 +2495,19 @@ process_debug_info (struct dwarf_section *section,
 	  compunit.cu_pointer_size = offset_size;
 	}
 
-      if (compunit.cu_version >= 5)
-	{
-	  dwarf_vma padding1_high, padding1_low;
-	  dwarf_vma padding2;
-
-	  SAFE_BYTE_GET64 (hdrptr, &padding1_high, &padding1_low, end);
-	  hdrptr += 8;
-	  if (padding1_high != 0 || padding1_low != 0)
-	    warn (_("Invalid padding1 (high %s, low %s) in compunit header\n"),
-		  dwarf_vmatoa ("x", padding1_high),
-		  dwarf_vmatoa ("x", padding1_low));
-
-	  SAFE_BYTE_GET_AND_INC (padding2, hdrptr, offset_size, end);
-	  if (padding2 != 0)
-	    warn (_("Invalid padding2 (%s) in compunit header\n"),
-		  dwarf_vmatoa ("x", padding2));
-	}
-
-      if (do_types)
+      if (compunit.cu_version >= 5 || do_types)
 	{
 	  SAFE_BYTE_GET64 (hdrptr, &signature_high, &signature_low, end);
 	  hdrptr += 8;
+	  if (!do_types && (signature_high != 0 || signature_low != 0))
+	    warn (_("Invalid signature (high %s, low %s) in compunit header\n"),
+		  dwarf_vmatoa ("x", signature_high),
+		  dwarf_vmatoa ("x", signature_low));
+
 	  SAFE_BYTE_GET_AND_INC (type_offset, hdrptr, offset_size, end);
+	  if (!do_types && type_offset != 0)
+	    warn (_("Invalid type_offset (%s) in compunit header\n"),
+		  dwarf_vmatoa ("x", type_offset));
 	}
 
       if ((do_loc || do_debug_loc || do_debug_ranges)
@@ -2610,6 +2604,15 @@ process_debug_info (struct dwarf_section *section,
 	  continue;
 	}
 
+      if (compunit.cu_unit_type != DW_UT_compile
+	  && compunit.cu_unit_type != DW_UT_type)
+	{
+	  warn (_("CU at offset %s contains corrupt or "
+		  "unsupported unit type: %d.\n"),
+		dwarf_vmatoa ("x", cu_offset), compunit.cu_unit_type);
+	  continue;
+	}
+
       free_abbrevs ();
 
       /* Process the abbrevs used by this compilation unit.  */
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 613833b..c95decc 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,59 @@
+2016-11-18  Claudiu Zissulescu  <claziss@synopsys.com>
+
+	* testsuite/gas/arc/cl-warn.s: New file.
+	* testsuite/gas/arc/cpu-pseudop-1.d: Likewise.
+	* testsuite/gas/arc/cpu-pseudop-1.s: Likewise.
+	* testsuite/gas/arc/cpu-pseudop-2.d: Likewise.
+	* testsuite/gas/arc/cpu-pseudop-2.s: Likewise.
+	* testsuite/gas/arc/cpu-warn2.s: Likewise.
+	* config/tc-arc.c (selected_cpu): Initialize.
+	(feature_type): New struct.
+	(feature_list): New variable.
+	(arc_check_feature): New function.
+	(arc_select_cpu): Check for .cpu duplicates. Don't overwrite the
+	current cpu features. Check if a feature is available for a given
+	cpu.
+	(md_parse_option): Test if features are available for a given cpu.
+
+2016-11-18  Szabolcs Nagy  <szabolcs.nagy@arm.com>
+
+	* config/tc-aarch64.c (parse_operands): Handle AARCH64_OPND_IMM_ROT*.
+	* testsuite/gas/aarch64/advsimd-armv8_3.d: New.
+	* testsuite/gas/aarch64/advsimd-armv8_3.s: New.
+	* testsuite/gas/aarch64/illegal-fcmla.s: New.
+	* testsuite/gas/aarch64/illegal-fcmla.l: New.
+	* testsuite/gas/aarch64/illegal-fcmla.d: New.
+
+2016-11-18  Szabolcs Nagy  <szabolcs.nagy@arm.com>
+
+	* testsuite/gas/aarch64/ldst-exclusive-armv8_3.s: Add ldaprb, ldaprh, ldapr tests.
+	* testsuite/gas/aarch64/ldst-exclusive-armv8_3.d: Likewise.
+	* testsuite/gas/aarch64/illegal-ldapr.s: Likewise.
+	* testsuite/gas/aarch64/illegal-ldapr.d: Likewise.
+	* testsuite/gas/aarch64/illegal-ldapr.l: Likewise.
+
+2016-11-18  Szabolcs Nagy  <szabolcs.nagy@arm.com>
+
+	* testsuite/gas/aarch64/fp-armv8_3.s: Add fjcvtzs test.
+	* testsuite/gas/aarch64/fp-armv8_3.d: Likewise.
+	* testsuite/gas/aarch64/illegal-fjcvtzs.s: Likewise.
+	* testsuite/gas/aarch64/illegal-fjcvtzs.d: Likewise.
+	* testsuite/gas/aarch64/illegal-fjcvtzs.l: Likewise.
+	* testsuite/gas/aarch64/illegal-nofp-armv8_3.s: Likewise.
+	* testsuite/gas/aarch64/illegal-nofp-armv8_3.d: Likewise.
+	* testsuite/gas/aarch64/illegal-nofp-armv8_3.l: Likewise.
+
+2016-11-18  Szabolcs Nagy  <szabolcs.nagy@arm.com>
+
+	* config/tc-aarch64.c (parse_operands): Handle AARCH64_OPND_ADDR_SIMM10.
+	(fix_insn): Likewise.
+	(warn_unpredictable_ldst): Handle ldst_imm10.
+	* testsuite/gas/aarch64/pac.s: Add ldraa and ldrab tests.
+	* testsuite/gas/aarch64/pac.d: Likewise.
+	* testsuite/gas/aarch64/illegal-ldraa.s: New.
+	* testsuite/gas/aarch64/illegal-ldraa.l: New.
+	* testsuite/gas/aarch64/illegal-ldraa.d: New.
+
 2016-11-15  Nick Clifton  <nickc@redhat.com>
 
 	PR gas/20803
diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c
index e65daa0..7c518c7 100644
--- a/gas/config/tc-aarch64.c
+++ b/gas/config/tc-aarch64.c
@@ -5561,6 +5561,9 @@ parse_operands (char *str, const aarch64_opcode *opcode)
 	case AARCH64_OPND_SVE_UIMM7:
 	case AARCH64_OPND_SVE_UIMM8:
 	case AARCH64_OPND_SVE_UIMM8_53:
+	case AARCH64_OPND_IMM_ROT1:
+	case AARCH64_OPND_IMM_ROT2:
+	case AARCH64_OPND_IMM_ROT3:
 	  po_imm_nc_or_fail ();
 	  info->imm.value = val;
 	  break;
@@ -6024,6 +6027,25 @@ parse_operands (char *str, const aarch64_opcode *opcode)
 					      /* skip_p */ 0);
 	  break;
 
+	case AARCH64_OPND_ADDR_SIMM10:
+	  po_misc_or_fail (parse_address (&str, info));
+	  if (info->addr.pcrel || info->addr.offset.is_reg
+	      || !info->addr.preind || info->addr.postind)
+	    {
+	      set_syntax_error (_("invalid addressing mode"));
+	      goto failure;
+	    }
+	  if (inst.reloc.type != BFD_RELOC_UNUSED)
+	    {
+	      set_syntax_error (_("relocation not allowed"));
+	      goto failure;
+	    }
+	  assign_imm_if_const_or_fixup_later (&inst.reloc, info,
+					      /* addr_off_p */ 1,
+					      /* need_libopcodes_p */ 1,
+					      /* skip_p */ 0);
+	  break;
+
 	case AARCH64_OPND_ADDR_UIMM12:
 	  po_misc_or_fail (parse_address (&str, info));
 	  if (info->addr.pcrel || info->addr.offset.is_reg
@@ -6481,6 +6503,7 @@ warn_unpredictable_ldst (aarch64_instruction *instr, char *str)
     {
     case ldst_pos:
     case ldst_imm9:
+    case ldst_imm10:
     case ldst_unscaled:
     case ldst_unpriv:
       /* Loading/storing the base register is unpredictable if writeback.  */
@@ -7350,6 +7373,7 @@ fix_insn (fixS *fixP, uint32_t flags, offsetT value)
     case AARCH64_OPND_ADDR_SIMM7:
     case AARCH64_OPND_ADDR_SIMM9:
     case AARCH64_OPND_ADDR_SIMM9_2:
+    case AARCH64_OPND_ADDR_SIMM10:
     case AARCH64_OPND_ADDR_UIMM12:
       /* Immediate offset in an address.  */
       insn = get_aarch64_insn (buf);
diff --git a/gas/config/tc-arc.c b/gas/config/tc-arc.c
index 06aee48..376ac43 100644
--- a/gas/config/tc-arc.c
+++ b/gas/config/tc-arc.c
@@ -451,7 +451,23 @@ static const struct cpu_type
 };
 
 /* Information about the cpu/variant we're assembling for.  */
-static struct cpu_type selected_cpu;
+static struct cpu_type selected_cpu = { 0, 0, 0, 0, 0 };
+
+/* A table with options.  */
+static const struct feature_type
+{
+  unsigned feature;
+  unsigned cpus;
+  const char *name;
+}
+  feature_list[] =
+{
+  { ARC_CD, ARC_OPCODE_ARCV2, "code-density" },
+  { ARC_NPS400, ARC_OPCODE_ARC700, "nps400" },
+  { ARC_SPFP, ARC_OPCODE_ARCFPX, "single-precision FPX" },
+  { ARC_DPFP, ARC_OPCODE_ARCFPX, "double-precision FPX" },
+  { ARC_FPUDA, ARC_OPCODE_ARCv2EM, "double assist FP" }
+};
 
 /* Used by the arc_reloc_op table.  Order is important.  */
 #define O_gotoff  O_md1     /* @gotoff relocation.  */
@@ -775,6 +791,27 @@ md_number_to_chars_midend (char *buf, unsigned long long val, int n)
     }
 }
 
+/* Check if a feature is allowed for a specific CPU.  */
+
+static void
+arc_check_feature (void)
+{
+  unsigned i;
+
+  if (!selected_cpu.features
+      || !selected_cpu.name)
+    return;
+  for (i = 0; (i < ARRAY_SIZE (feature_list)); i++)
+    {
+      if ((selected_cpu.features & feature_list[i].feature)
+	  && !(selected_cpu.flags & feature_list[i].cpus))
+	{
+	  as_bad (_("invalid %s option for %s cpu"), feature_list[i].name,
+		  selected_cpu.name);
+	}
+    }
+}
+
 /* Select an appropriate entry from CPU_TYPES based on ARG and initialise
    the relevant static global variables.  Parameter SEL describes where
    this selection originated from.  */
@@ -790,6 +827,10 @@ arc_select_cpu (const char *arg, enum mach_selection_type sel)
   gas_assert (sel != MACH_SELECTION_FROM_DEFAULT
               || mach_selection_mode == MACH_SELECTION_NONE);
 
+  if ((mach_selection_mode == MACH_SELECTION_FROM_CPU_DIRECTIVE)
+      && (sel == MACH_SELECTION_FROM_CPU_DIRECTIVE))
+    as_bad (_("Multiple .cpu directives found"));
+
   /* Look for a matching entry in CPU_TYPES array.  */
   for (i = 0; cpu_types[i].name; ++i)
     {
@@ -807,22 +848,25 @@ arc_select_cpu (const char *arg, enum mach_selection_type sel)
                   && selected_cpu.mach != cpu_types[i].mach)
                 {
                   as_warn (_("Command-line value overrides \".cpu\" directive"));
-                  return;
                 }
+	      return;
             }
 
-          /* Initialise static global data about selected machine type.  */
-          selected_cpu.flags = cpu_types[i].flags;
-          selected_cpu.name = cpu_types[i].name;
-          selected_cpu.features = cpu_types[i].features;
-          selected_cpu.mach = cpu_types[i].mach;
-          cpu_flags = cpu_types[i].eflags;
+	  /* Initialise static global data about selected machine type.  */
+	  selected_cpu.flags = cpu_types[i].flags;
+	  selected_cpu.name = cpu_types[i].name;
+	  selected_cpu.features |= cpu_types[i].features;
+	  selected_cpu.mach = cpu_types[i].mach;
+	  cpu_flags = cpu_types[i].eflags;
           break;
         }
     }
 
   if (!cpu_types[i].name)
     as_fatal (_("unknown architecture: %s\n"), arg);
+
+  /* Check if set features are compatible with the chosen CPU.  */
+  arc_check_feature ();
   gas_assert (cpu_flags != 0);
   selected_cpu.eflags = (arc_initial_eflag & ~EF_ARC_MACH_MSK) | cpu_flags;
   mach_selection_mode = sel;
@@ -3304,11 +3348,8 @@ md_parse_option (int c, const char *arg ATTRIBUTE_UNUSED)
       break;
 
     case OPTION_CD:
-      /* This option has an effect only on ARC EM.  */
-      if (selected_cpu.flags & ARC_OPCODE_ARCv2EM)
-	selected_cpu.features |= ARC_CD;
-      else
-	as_warn (_("Code density option invalid for selected CPU"));
+      selected_cpu.features |= ARC_CD;
+      arc_check_feature ();
       break;
 
     case OPTION_RELAX:
@@ -3317,22 +3358,22 @@ md_parse_option (int c, const char *arg ATTRIBUTE_UNUSED)
 
     case OPTION_NPS400:
       selected_cpu.features |= ARC_NPS400;
+      arc_check_feature ();
       break;
 
     case OPTION_SPFP:
       selected_cpu.features |= ARC_SPFP;
+      arc_check_feature ();
       break;
 
     case OPTION_DPFP:
       selected_cpu.features |= ARC_DPFP;
+      arc_check_feature ();
       break;
 
     case OPTION_FPUDA:
-      /* This option has an effect only on ARC EM.  */
-      if (selected_cpu.flags & ARC_OPCODE_ARCv2EM)
-	selected_cpu.features |= ARC_FPUDA;
-      else
-	as_warn (_("FPUDA invalid for selected CPU"));
+      selected_cpu.features |= ARC_FPUDA;
+      arc_check_feature ();
       break;
 
     /* Dummy options are accepted but have no effect.  */
diff --git a/gas/testsuite/gas/aarch64/advsimd-armv8_3.d b/gas/testsuite/gas/aarch64/advsimd-armv8_3.d
new file mode 100644
index 0000000..0e477e4
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/advsimd-armv8_3.d
@@ -0,0 +1,33 @@
+#as: -march=armv8.3-a
+#objdump: -dr
+
+.*:     file format .*
+
+Disassembly of section \.text:
+
+0000000000000000 <.*>:
+[^:]+:	6ec3c441 	fcmla	v1.2d, v2.2d, v3.2d, #0
+[^:]+:	6ec3cc41 	fcmla	v1.2d, v2.2d, v3.2d, #90
+[^:]+:	6ec3d441 	fcmla	v1.2d, v2.2d, v3.2d, #180
+[^:]+:	6ec3dc41 	fcmla	v1.2d, v2.2d, v3.2d, #270
+[^:]+:	2e83cc41 	fcmla	v1.2s, v2.2s, v3.2s, #90
+[^:]+:	6e83cc41 	fcmla	v1.4s, v2.4s, v3.4s, #90
+[^:]+:	2e43cc41 	fcmla	v1.4h, v2.4h, v3.4h, #90
+[^:]+:	6e43cc41 	fcmla	v1.8h, v2.8h, v3.8h, #90
+[^:]+:	6f831041 	fcmla	v1.4s, v2.4s, v3.s\[0\], #0
+[^:]+:	6f833041 	fcmla	v1.4s, v2.4s, v3.s\[0\], #90


hooks/post-receive
--
Repository for Project Archer.


             reply	other threads:[~2016-11-18 19:20 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-18 19:20 jkratoch [this message]
  -- strict thread matches above, loose matches on Subject: below --
2016-11-23 22:20 jkratoch
2016-11-20 20:58 jkratoch
2016-11-20 20:10 jkratoch
2016-11-19  8:49 jkratoch
2016-11-18 19:53 jkratoch
2016-11-16 17:58 jkratoch

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20161118192057.43923.qmail@sourceware.org \
    --to=jkratoch@sourceware.org \
    --cc=archer-commits@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).