diff options
author | Tamar Christina <tamar.christina@arm.com> | 2018-05-15 16:34:54 +0100 |
---|---|---|
committer | Tamar Christina <tamar.christina@arm.com> | 2018-05-15 17:17:36 +0100 |
commit | 7d02540ab73206249779ced77a6abe0be156442e (patch) | |
tree | a1cfb7b7f7fc9c3071ca1d72f4d17b4da7dc13c4 /binutils | |
parent | 561a72d4ddf825ffaf8e88551e9bd6707cd6c59f (diff) | |
download | gdb-7d02540ab73206249779ced77a6abe0be156442e.zip gdb-7d02540ab73206249779ced77a6abe0be156442e.tar.gz gdb-7d02540ab73206249779ced77a6abe0be156442e.tar.bz2 |
Allow non-fatal errors to be emitted and for disassembly notes be placed on AArch64
This patch adds a new platform option "notes" that can be used to indicate if
disassembly notes should be placed in the disassembly as comments.
These notes can contain information about a failing constraint such as reading
from a write-only register. The disassembly will not be blocked because of this
but -M notes will emit a comment saying that the operation is not allowed.
For assembly this patch adds a new non-fatal status for errors. This is
essentially a warning. The reason for not creating an actual warning type is
that this causes the interaction between the ordering of warnings and errors to
be problematic. Currently the error buffer is almost always filled because of
the way operands are matched during assembly. An earlier template may have put
an error there that would only be displayed if no other template matches or
generates a higher priority error. But by definition a warning is lower
priority than a warning, so the error (which is incorrect if another template
matched) will supersede the warning. By treating warnings as errors and only
later relaxing the severity this relationship keeps working and the existing
reporting infrastructure can be re-used.
binutils/
PR binutils/21446
* doc/binutils.texi (-M): Document AArch64 options.
* NEWS: Document notes and warnings.
gas/
PR binutils/21446
* config/tc-aarch64.c (print_operands): Indicate no notes.
(output_operand_error_record): Support non-fatal errors.
(output_operand_error_report, warn_unpredictable_ldst, md_assemble):
Likewise.
include/
PR binutils/21446
* opcode/aarch64.h (aarch64_operand_error): Add non_fatal.
(aarch64_print_operand): Support notes.
opcodes/
PR binutils/21446
* aarch64-dis.c (no_notes: New.
(parse_aarch64_dis_option): Support notes.
(aarch64_decode_insn, print_operands): Likewise.
(print_aarch64_disassembler_options): Document notes.
* aarch64-opc.c (aarch64_print_operand): Support notes.
Diffstat (limited to 'binutils')
-rw-r--r-- | binutils/ChangeLog | 6 | ||||
-rw-r--r-- | binutils/NEWS | 8 | ||||
-rw-r--r-- | binutils/doc/binutils.texi | 5 |
3 files changed, 19 insertions, 0 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 8120850..8f139a5 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,9 @@ +2018-05-15 Tamar Christina <tamar.christina@arm.com> + + PR binutils/21446 + * doc/binutils.texi (-M): Document AArch64 options. + * NEWS: Document notes and warnings. + 2018-05-15 Alan Modra <amodra@gmail.com> * testsuite/lib/binutils-common.exp (is_elf_format): Add chorus, diff --git a/binutils/NEWS b/binutils/NEWS index da841de..d90d889 100644 --- a/binutils/NEWS +++ b/binutils/NEWS @@ -2,6 +2,14 @@ * Add support for disassembling netronome Flow Processor (NFP) firmware files. +* The AArch64 port now supports showing disassembly notes which are emitted + when inconsistencies are found with the instruction that may result in the + instruction being invalid. These can be turned on with the option -M notes + to objdump. + +* The AArch64 port now emits warnings when a combination of an instruction and + a named register could be invalid. + Changes in 2.30: * Add --debug-dump=links option to readelf and --dwarf=links option to objdump diff --git a/binutils/doc/binutils.texi b/binutils/doc/binutils.texi index 3a32cc4..e4d32b6 100644 --- a/binutils/doc/binutils.texi +++ b/binutils/doc/binutils.texi @@ -2342,6 +2342,11 @@ using the switch @option{--disassembler-options=force-thumb}. This can be useful when attempting to disassemble thumb code produced by other compilers. +For AArch64 targets this switch can be used to set whether instructions are +disassembled as the most general instruction using the @option{-M no-aliases} +option or whether instruction notes should be generated as comments in the +disasssembly using @option{-M notes}. + For the x86, some of the options duplicate functions of the @option{-m} switch, but allow finer grained control. Multiple selections from the following may be specified as a comma separated string. |