3104 Commits

Author SHA1 Message Date
Jan Kratochvil
2f6cd5918e DWARF-5: DW_FORM_data16
binutils/
2017-02-23  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwarf.c (read_and_display_attr_value): Support DW_FORM_data16.
2017-02-23 22:58:20 +01:00
Jan Kratochvil
7a7e1061d4 DWARF-5: Macros
binutils/
2017-02-23  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwarf.c (display_debug_macro): Support DWARF-5.  Rename
	DW_MACRO_GNU_*.
2017-02-23 22:57:52 +01:00
Jan Kratochvil
bc0a77d2b1 DWARF-5: call sites
binutils/
2017-02-23  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwarf.c (decode_location_expression): Support DW_OP_implicit_pointer,
	DW_OP_const_type, DW_OP_regval_type, DW_OP_deref_type, DW_OP_convert
	and DW_OP_reinterpret.
	(read_and_display_attr_value): Support DW_AT_call_value,
	DW_AT_call_data_value, DW_AT_call_target and
	DW_AT_call_target_clobbered.
2017-02-23 22:57:22 +01:00
Jan Kratochvil
77145576fa DWARF-5 basic functionality
binutils/
2017-02-23  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwarf.c (fetch_indirect_line_string): New function.
	(abbrev_attr): New field implicit_const.
	(add_abbrev_attr): New parameter implicit_const.
	(process_abbrev_section): Support DW_FORM_implicit_const.
	(decode_location_expression): Support DW_OP_entry_value.
	(read_and_display_attr_value): Add parameter implicit_const.  Support
	DW_FORM_line_strp and DW_FORM_implicit_const.
	(read_and_display_attr): Add parameter implicit_const.
	(process_debug_info): Support line_str and DWARF-5.
	(read_debug_line_header): Support DWARF-5.
	(display_formatted_table): New function.
	(display_debug_lines_raw): New parameter file.  Support DWARF-5.
	(display_debug_lines_decoded): New parameter fileptr.  Support DWARF-5.
	(display_debug_lines): Pass file parameter.
	(display_debug_macro): Update read_and_display_attr_value caller.
	(display_debug_abbrev): Support DW_FORM_implicit_const.
	(display_loclists_list): New function.
	(display_loc_list): Support .debug_loclists.
	(display_debug_ranges_list): New function from display_debug_ranges.
	(display_debug_rnglists_list): New function.
	(display_debug_ranges): Support .debug_rnglists.
	(debug_displays): Add .debug_line_str, .debug_loclists and
	.debug_rnglists.
	* dwarf.h: Include dwarf2.h
	(DWARF2_Internal_LineInfo): Add li_offset_size.
	(DWARF2_Internal_CompUnit): Add cu_unit_type.
	(enum dwarf_section_display_enum): Add line_str.
	* readelf.c (process_section_headers): Add rnglists and loclists.
2017-02-23 22:56:47 +01:00
Jan Kratochvil
ef0b5f1c69 DWARF attrs: add delimiter
binutils/
2017-02-23  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwarf.c (display_block): Add parameter delimiter.
	(decode_location_expression): Update display_block callers.
	(read_and_display_attr_value): Add parameter delimiter.
	(read_and_display_attr, display_debug_macro): Update
	read_and_display_attr_value caller.
2017-02-23 22:54:00 +01:00
Jan Kratochvil
359ca075e7 dwarf.c: Use more dwarf_vma
binutils/
2017-02-23  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwarf.c (display_loc_list): Use dwarf_vma for offset, base_address
	and off.
	(display_loc_list_dwo): Use dwarf_vma for offset.
	(display_debug_loc): Use dwarf_vma for offset, base_address.
	(struct range_entry, range_entry_compar): Use dwarf_vma for
	ranges_offset.
	(display_debug_ranges): Use dwarf_vma for ranges_offset, offset and
	base_address.
2017-02-23 21:37:31 +01:00
Nick Clifton
60abdbedb2 Add support to readelf for displaying gnu attributes in architectures not known to support them.
* readelf.c (display_tag_value): Use an explicit signed type for
	the tag parameter.
	(display_gnu_attributes): Use an unsigned integer type for
	attribute tags.
	(display_power_gnu_attribute): Likewise.
	(display_s390_gnu_attribute): Likewise.
	(display_sparc_hwcaps): Likewise.
	(display_sparc_hwcaps2): Likewise.
	(display_sparc_gnu_attribute): Likewise.
	(display_mips_gnu_attribute): Likewise.
	(display_tic6x_attribute): Likewise.
	(display_raw_attribute): Likewise.
	(process_attributes): Likewise.
	(process_arm_specific): Delete redundant function.
	(process_power_specific): Likewise.
	(process_s390_specific): Likewise.
	(process_sparc_specific): Likewise.
	(process_tic6x_specific): Likewise.
	(process_msp430x_specific): Likewise.
	(display_public_gnu_attributes): New function.  Displays known
	information about an unknown gnu attribute.
	(display_generic_attribute): New function.  Calls
	display_tag_value for non-nul tags.
	(process_arch_specific): Call process_attributes even for
	architectures not known to specifically support gnu attributes.
2017-02-23 13:45:21 +00:00
Jan Kratochvil
0502a2b49c Display user op byte
binutils/
2017-02-22  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dwarf.c (decode_location_expression): Display also OP.
2017-02-22 20:22:59 +01:00
Maciej W. Rozycki
233f82cfb4 readelf: Restore a lost new line in version information
Fix a commit 74e1a04b9787 ("More fixes for reading corrupt ELF files.")
`readelf --version-info' output formatting regression where a dropped
new line caused section header information from the `.gnu.version_d'
version definition section to be printed on the same line as this
section's first entry.

For example with the `mips-linux' target we get:

$ cat ver_def.s
	.data
	.globl	new_foo
	.type	new_foo, %object
new_foo:
	.symver	new_foo, foo@@ver_foo
$ cat ver_def.ver
{ global: *foo*; local: *; };
$ as -o ver_def.o ver_def.s
$ ld -e 0 --export-dynamic --version-script=ver_def.ver -o ver_def ver_def.o
$ readelf -V ver_def

Version symbols section '.gnu.version' contains 4 entries:
 Addr: 000000000000007e  Offset: 0x01007e  Link: 2 (.dynsym)
  000:   0 (*local*)       2 (ver_foo)       1 (*global*)      2 (ver_foo)

Version definition section '.gnu.version_d' contains 2 entries:
  Addr: 0x0000000000000088  Offset: 0x010088  Link: 3 (.dynstr)  000000: Rev: 1  Flags: BASE   Index: 1  Cnt: 1  Name: ver_def
  0x001c: Rev: 1  Flags: none  Index: 2  Cnt: 1  Name: ver_foo
  Version definition past end of section
$

Add the new line then, to get:

$ readelf -V ver_def

Version symbols section '.gnu.version' contains 4 entries:
 Addr: 000000000000007e  Offset: 0x01007e  Link: 2 (.dynsym)
  000:   0 (*local*)       2 (ver_foo)       1 (*global*)      2 (ver_foo)

Version definition section '.gnu.version_d' contains 2 entries:
  Addr: 0x0000000000000088  Offset: 0x010088  Link: 3 (.dynstr)
  000000: Rev: 1  Flags: BASE   Index: 1  Cnt: 1  Name: ver_def
  0x001c: Rev: 1  Flags: none  Index: 2  Cnt: 1  Name: ver_foo
  Version definition past end of section
$

instead.

	binutils/
	* readelf.c (process_version_sections) <SHT_GNU_verdef>: Print a
	new line between the heading and the first version definition
	entry.
2017-02-22 18:16:28 +00:00
Nick Clifton
43a444f9c5 Fix another memory access error in readelf when parsing a corrupt binary.
PR binutils/21156
	* dwarf.c (cu_tu_indexes_read): Move into...
	(load_cu_tu_indexes): ... here.  Change the variable into
	tri-state.  Change the function into boolean, returning
	false if the indicies could not be loaded.
	(find_cu_tu_set): Return NULL if the indicies could not be
	loaded.
2017-02-20 14:40:39 +00:00
Nick Clifton
b814a36d34 Fix illegal memory accesses in readelf when parsing a corrupt binary.
PR binutils/21156
	* readelf.c (find_section_in_set): Test for invalid section
	indicies.
2017-02-17 15:59:45 +00:00
Nick Clifton
1b4b80bf37 Add support to readelf for displaying GNU section types.
* readelf.c (get_section_type_name): Add decoding of GNU section
	types.
2017-02-17 15:31:54 +00:00
Pedro Alves
4bc26c6959 bfd: Rename Chunk and S3Forced
The direct references in objcopy kind of look like a hack to me, so
I'm calling these symbols internal too.  Certainly they aren't named
and documented as a public BFD symbol today anyway.

So ... give these bfd-internal symbols with external linkage a _bfd_
prefix to avoid collisions in the global symbol namespace.

While at it, give them names that more closely match the corresponding
option name that toggles them.

Also while at it, fix a few related comment typos.

gdb/ChangeLog:
2017-02-17  Pedro Alves  <palves@redhat.com>

	* srec.c (Chunk): Rename to ...
	(_bfd_srec_len): ... this.
	(S3Forced): Rename to ...
	(_bfd_srec_forceS3): ... this.
	* objcopy.c: Adjust all references.
2017-02-17 01:26:12 +00:00
Nick Clifton
7c723eecec Move Eric Christopher to Past Maintainers list.
* MAINTAINERS: (MIPS, MN10300): Move Eric Christopher to Past
	Maintainers section.
2017-02-15 09:42:38 +00:00
Nick Clifton
bc303e5d6c Fix invalid memory access displayiing contents of sections.
PR binutils/21159
	* readelf.c (dump_section_as_strings): Reset the start address if
	no decompression is perfromed.
	(dump_section_as_bytes): Likewise.
2017-02-14 15:10:34 +00:00
Nick Clifton
92134dc19b Fix an illegal memory access parsing corrupt STABD debug information.
PR binutils/21158
	* rddbg.c (read_symbol_stabs_debugging_info): Check for a null or
	empty symbol name.
2017-02-14 14:17:09 +00:00
Nick Clifton
a2dea0b20b Fix handling of corrupt STABS enum type strings.
PR binutils/21157
	* stabs.c (parse_stab_enum_type): Check for corrupt NAME:VALUE
	pairs.
	(parse_number): Exit early if passed an empty string.
2017-02-14 14:07:29 +00:00
Nick Clifton
b32e566ba6 Fix illegal memory access problems with readelf processing corrupt RL78 binaries.
PR binutils/21155
	* readelf.c (IN_RANGE): New macro.  Tests for an address + offset
	being within a given range.
	(target_specific_reloc_handling): Use macro to test for underflow
	as well as overflow of reloc offset.
2017-02-14 13:24:09 +00:00
Nick Clifton
c12214021d Fix illegal memory access bug in nm when run on a corrupt binary.
PR binutils/21150
	* nm.c (file_symbol): Add test of string length before testing
	string characters.
2017-02-13 17:23:10 +00:00
Nick Clifton
1835f746a7 Extend previous patch to cover uncompress_section_contents returning FALSE to other callers.
PR binutils/21135
	(dump_section_as_bytes, load_specific_debug_section): Likewise.
2017-02-13 15:19:48 +00:00
Nick Clifton
f055032e4e Fix invalid read of section contents whilst processing a corrupt binary.
PR binutils/21135
	* readelf.c (dump_section_as_bytes): Handle the case where
	uncompress_section_contents returns false.
2017-02-13 15:04:37 +00:00
Nick Clifton
ebdf1ebfa5 Fix invalid memory access attempting to read the compression header of a too-small compressed section.
PR binutils/21149
	* readelf.c (get_compression_header): Add size parameter.  Check
	size against sizeof compression header before attempting to
	extract the header.
	(process_section_headers): Pass size to get_compression_header.
	(dump_section_as_strings): Likewise.
	(dump_section_as_bytes): Likewise.
	(load_specific_debug_section): Likewise.
2017-02-13 14:52:48 +00:00
Nick Clifton
4aeb00ad3c Fix check for buffer overflow when processing version information.
PR binutils/21148
	* readelf.c (process_version_sections): Include size of auxillary
	version information when checking for buffer overflow.
2017-02-13 14:35:24 +00:00
Nick Clifton
0ee3043f58 Fix access violation when reporting sections that could not be dumped.
PR binutils/21147
	* readelf.c (process_section_contents): Fix off by one error
	reporting un-dumped sections.
2017-02-13 14:17:07 +00:00
Nick Clifton
f84ce13b67 Fix read-after-free error in readelf when processing multiple, relocated sections in an MSP430 binary.
PR binutils/21139
	* readelf.c (target_specific_reloc_handling): Add num_syms
	parameter.  Check for symbol table overflow before accessing
	symbol value.  If reloc pointer is NULL, discard all saved state.
	(apply_relocations): Pass num_syms to target_specific_reloc_handling.
	Call target_specific_reloc_handling with a NULL reloc pointer
	after processing all of the relocs.
2017-02-13 14:03:22 +00:00
Nick Clifton
03f7786e2f Fix readelf writing to illegal addresses whilst processing corrupt input files containing symbol-difference relocations.
PR binutils/21137
	* readelf.c (target_specific_reloc_handling): Add end parameter.
	Check for buffer overflow before writing relocated values.
	(apply_relocations): Pass end to target_specific_reloc_handling.
2017-02-13 13:08:32 +00:00
Dilyan Palauzov
387dd77738 Update description of the -plugin option used by the linker, ar and nm.
PR 20343
ld	* ld.texinfo (Options): Extend documentation of the --plugin
	option.  Include a description of where the plugins should be
	located.

binutils* doc/binutils.texi (ar): Extend documentation of the --plugin
	option.  Include a description of where the plugins should be
	located.
	(nm): Likewise.
2017-01-27 13:20:24 +00:00
Nick Clifton
c49f9d0fda Fix typo in MAINTAINERS file 2017-01-23 16:28:46 +00:00
Nick Clifton
71d01c691e Remove Mei Ligang as SCORE maintainer 2017-01-23 16:20:57 +00:00
Nick Clifton
cf581a9b94 Add Bernd Schmidt to Past Maintainers list 2017-01-23 16:16:55 +00:00
Bernd Schmidt
715e99a498 * MAINTAINERS (BFIN): Remove myself as Blackfin maintainer. 2017-01-23 15:00:23 +01:00
Andrew Burgess
1737c64030 objdump: Better objdump section headers in wide mode
When displaying the section headers table using objdump (-h), the column
containing the section header name is currently fixed at 13 characters.
A section name that is longer than 13 characters will overflow the
column causing the table to become miss-aligned.

In this commit I change the behaviour so that _in wide mode_ (-w -h) the
section name column is dynamically resized to fit the longest section
name we plan to display.  In wide mode the column still retains a
minimum width of 13 characters.

In non-wide more the behaviour is completely unchanged.

While I was changing the dump_headers function I have unified the two
printf lines that handled the different address widths into a single
printf, the address width is now passed into printf using the '*' field
width format character.

binutils/ChangeLog:

	* objdump.c (dump_section_header): Extract max section name length
	from data parameter, use this when formatting output.
	(find_longest_section_name): New function.
	(dump_headers): Calculate longest section name when in wide mode,
	reformat to unify printing of header line.

ld/ChangeLog:

	* testsuite/ld-elf/eh-frame-hdr.d: Update expected results.
2017-01-20 09:05:41 +00:00
Bernhard Rosenkranzer
2cedb9ebf8 Add support for processing lex source files with flex v 2.6.3
PR 21059
binutils* arlex.l: Support processing with flex 2.6.3.
	* deflex.l: Likewise.

gas	* config/bfin-lex.l: Support processing with flex 2.6.3.
	* itbl-lex.l: Likewise.
2017-01-18 13:38:27 +00:00
Dmitry Timoshkov
6bb21700ab Stop the (optional) dialong control data from being aligned when parsing/writing windows resource files.
binutils* resbin.c: Optional dialog control data immediately follow
	the control description without alignment.
	* testsuite/binutils-all/windres/controldata.rc: New test.
	source.
	* testsuite/binutils-all/windres/controldata.rsd: New test.
2017-01-18 11:40:06 +00:00
Nick Clifton
2425a30e40 Add support for locating separate debug info files via the build-id method.
PR binutils/20876
bfd	* opncls.c (find_separate_debug_file): Add include_dirs
	parameter.  Only include the directory part of the bfd's filename
	in search paths if include_dirs is true.  Add a couple of extra
	locations for looking for debug files.
	( bfd_follow_gnu_debuglink): Update invocation of
	find_separate_debug_file.
	(bfd_follow_gnu_debugaltlink): Likewise.
	(get_build_id): New function: Finds the build-id of the given bfd.
	(get_build_id_name): New function: Computes the name of the
	separate debug info file for a bfd, based upon its build-id.
	(check_build_id_file): New function: Checks to see if a separate
	debug info file exists at the given location, and that its
	build-id matches that of the original bfd.
	(bfd_follow_build_id_debuglink): New function: Finds a separate
	debug info file for a given bfd by using the build-id method.
	* dwarf2.c (_bfd_dwarf2_slurp_debug_info): Try using the build-id
	method of locating a separate debug info file before using the
	debuglink method.
	* bfd-in2.h: Regenerate.

binutils * NEWS: Mention the new feature.
	* testsuite/binutils-all/objdump.exp (test_build_id_debuglink):
	New proc to test the location of separate debug info files using
	the build-id method.
2017-01-12 16:56:54 +00:00
Nick Clifton
b972a0d61a Fix compile time warning about pointer comparison.
PR 21034
	* stabs.c (parse_stab_members): Fix thinko checking for g++
	version 1 stabs information.
2017-01-10 11:45:12 +00:00
Nick Clifton
07e8e62387 Updated Swedish translations for GAS and LD 2017-01-10 11:28:36 +00:00
Nick Clifton
cd6581da62 Speed up objdump when displaying disassembly mixed with line number and source code information.
bfd	* dwarf2.c (lookup_address_in_function_table): Return early if
	there are no functions in the given comp unit, or if the high
	address of the last function in the comp unit is less than the
	desired address.

binutils * objdump.c (display_file): Add new parameter 'last_file'.  If
	last_file is true, do not call bfd_close at the end of the
	function.
	(main): Set the value of the last_file parameter when calling
	display_file.
2017-01-09 16:49:48 +00:00
Alan Modra
4d74727a4a .rela.dyn comment fix and add missing ChangeLog entry
ChangeLog entry missed from commit dd90581873.

	* readelf.c (process_section_headers): Correct .rel.dyn/.rela.dyn
	comment.
2017-01-09 12:10:55 +10:30
Nick Clifton
fd13a84bb0 Retire Paul Brook as an ARM maintainer.
* MAINTAINERS: Move Paul Brook to the Past Maintainers section.
2017-01-06 12:24:54 +00:00
Dilan Palauzov
b055631694 Use noyywrap option in lex files.
ld	PR 20958
	* ldlex.l (option): Add noyywrap
	(yywrap): Delete.
	* ldlex.h (yywrap): Delete prototype.

binutils
	PR 20958
	* syslex.l (option): Add noyywrap
	(yywrap): Delete.
2017-01-04 16:05:22 +00:00
Alan Modra
2571583aed Update year range in copyright notice of all files. 2017-01-02 14:08:56 +10:30
Alan Modra
5c1ad6b5bb ChangeLog rotation 2017-01-02 13:55:05 +10:30
Dimitar Dimitrov
2b100bb5cf PRU Binutils port
* readelf.c (guess_is_rela): Add EM_TI_PRU.
	(dump_relocations): Invoke elf_pru_reloc_type.
	(get_machine_name): Handle EM_TI_PRU.
	(is_32bit_abs_reloc): Handle R_PRU_BFD_RELOC_32.
	(is_16bit_abs_reloc): Handle R_PRU_BFD_RELOC_16.
	(is_none_reloc): Handle PRU_NONE and PRU_DIFF variants.

Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
2016-12-31 12:03:22 +10:30
Maciej W. Rozycki
5284e471d5 MIPS16: Add ASMACRO instruction support
Add ASMACRO instruction support as per the MIPS16e ASE architecture
specifications [1][2], completing MIPS16e instruction set support.

[1] "MIPS32 Architecture for Programmers, Volume IV-a: The MIPS16e
    Application-Specific Extension to the MIPS32 Architecture", MIPS
    Technologies, Inc., Document Number: MD00076, Revision 2.63, July
    16, 2013, Section 4.1 "MIPS16e Instruction Descriptions", p. 65

[2] "MIPS64 Architecture for Programmers, Volume IV-a: The MIPS16e
    Application-Specific Extension to the MIPS64 Architecture", MIPS
    Technologies, Inc., Document Number: MD00077, Revision 2.60, June
    25, 2008, Section 1.1 "MIPS16e Instruction Descriptions", p. 66

	include/
	* opcode/mips.h: Document `0', `1', `2', `3', `4' and `s'
	operand codes.

	opcodes/
	* mips16-opc.c (decode_mips16_operand): Add `0', `1', `2', `3',
	`4' and `s' operand codes.
	(mips16_opcodes): Add "asmacro" entry.

	binutils/
	* testsuite/binutils-all/mips/mips16-extend-insn.d: Update for
	ASMACRO support.

	gas/
	* testsuite/gas/mips/mips16-asmacro.d: New test.
	* testsuite/gas/mips/mips16-32@mips16-asmacro.d: New test.
	* testsuite/gas/mips/mips16-64@mips16-asmacro.d: New test.
	* testsuite/gas/mips/mips16-asmacro.s: New test source.
	* testsuite/gas/mips/mips.exp: Run the new tests.
2016-12-23 19:55:21 +00:00
Maciej W. Rozycki
0674ee5dad MIPS16: Handle non-extensible instructions correctly
Identify non-extensible instructions in the MIPS16 opcode table and
disallow their use with the `.e' instruction size suffix in assembly and
do not interpret any EXTEND prefix present as a part of the instruction
in disassembly.

According to all versions of the MIPS16 ASE specifications the following
instructions encodings are not extensible [1][2][3][4][5][6]: I8/MOV32R,
I8/MOVR32, all RRR minor opcodes, all RR minor opcodes except from DSRA
and DSRL, and EXTEND itself, and as from revision 2.50 of the MIPS16e
ASE specifications it has been further clarified what was previously
implied, that non-extesiable instructions when preceded with an EXTEND
prefix must cause a Reserved Instruction exception [3][5].

Therefore in the presence of an EXTEND prefix none of these instructions
are supposed to be handled as extended instructions and supporting these
forms in disassembly causes confusion, and in the case of the RRR major
opcode it also clashes with the ASMACRO encoding.

References:

[1] "Product Description, MIPS16 Application-Specific Extension",
    Version 1.3, MIPS Technologies, Inc., 970130, Table 3. "MIPS16
    Instruction Set Summary", p. 5

[2] same, Table 5 "RR Minor Opcodes (RR-type instructions)", p.10

[3] "MIPS32 Architecture for Programmers, Volume IV-a: The MIPS16e
    Application-Specific Extension to the MIPS32 Architecture", MIPS
    Technologies, Inc., Document Number: MD00076, Revision 2.63, July
    16, 2013, Section 3.9 "MIPS16e Instruction Summaries", pp. 37-39

[4] same, Section 3.15 "Instruction Bit Encoding", pp. 46-49

[5] "MIPS64 Architecture for Programmers, Volume IV-a: The MIPS16e
    Application-Specific Extension to the MIPS64 Architecture", MIPS
    Technologies, Inc., Document Number: MD00077, Revision 2.60, June
    25, 2008, Section 1.9 "MIPS16e Instruction Summaries", pp. 38-41

[6] same, Section 1.15 "Instruction Bit Encoding", pp. 48-51

	include/
	* opcode/mips.h (INSN2_SHORT_ONLY): New macro.

	gas/
	* config/tc-mips.c (is_size_valid_16): Disallow a `.e' suffix
	instruction size override for INSN2_SHORT_ONLY opcode table
	entries.
	* testsuite/gas/mips/mips16-extend-swap.d: Adjust output.
	* testsuite/gas/mips/mips16-macro-e.l: Adjust error messages.
	* testsuite/gas/mips/mips16-32@mips16-macro-e.l: Adjust error
	messages.
	* testsuite/gas/mips/mips16e-32@mips16-macro-e.l: Adjust error
	messages.
	* testsuite/gas/mips/mips16-insn-e.d: New test.
	* testsuite/gas/mips/mips16-insn-t.d: New test.
	* testsuite/gas/mips/mips16-32@mips16-insn-e.d: New test.
	* testsuite/gas/mips/mips16-64@mips16-insn-e.d: New test.
	* testsuite/gas/mips/mips16e-32@mips16-insn-e.d: New test.
	* testsuite/gas/mips/mips16-32@mips16-insn-t.d: New test.
	* testsuite/gas/mips/mips16-64@mips16-insn-t.d: New test.
	* testsuite/gas/mips/mips16e-32@mips16-insn-t.d: New test.
	* testsuite/gas/mips/mips16-insn-e.l: New stderr output.
	* testsuite/gas/mips/mips16-insn-t.l: New stderr output.
	* testsuite/gas/mips/mips16-32@mips16-insn-e.l: New stderr
	output.
	* testsuite/gas/mips/mips16-64@mips16-insn-e.l: New stderr
	output.
	* testsuite/gas/mips/mips16e-32@mips16-insn-e.l: New stderr
	output.
	* testsuite/gas/mips/mips16-32@mips16-insn-t.l: New stderr
	output.
	* testsuite/gas/mips/mips16-64@mips16-insn-t.l: New stderr
	output.
	* testsuite/gas/mips/mips16e-32@mips16-insn-t.l: New stderr
	output.
	* testsuite/gas/mips/mips16-insn-e.s: New test source.
	* testsuite/gas/mips/mips16-insn-t.s: New test source.
	* testsuite/gas/mips/mips.exp: Run the new tests.

	opcodes/
	* mips-dis.c (print_insn_mips16): Disallow EXTEND prefix
	matching for INSN2_SHORT_ONLY opcode table entries.
	* mips16-opc.c (SH): New macro.
	(mips16_opcodes): Set SH in `pinfo2' for non-extensible
	instruction entries: "nop", "addu", "and", "break", "cmp",
	"daddu", "ddiv", "ddivu", "div", "divu", "dmult", "dmultu",
	"drem", "dremu", "dsllv", "dsll", "dsrav", "dsra", "dsrlv",
	"dsrl", "dsubu", "exit", "entry", "jalr", "jal", "jr", "j",
	"jalrc", "jrc", "mfhi", "mflo", "move", "mult", "multu", "neg",
	"not", "or", "rem", "remu", "sllv", "sll", "slt", "sltu",
	"srav", "sra", "srlv", "srl", "subu", "xor", "sdbbp", "seb",
	"seh", "sew", "zeb", "zeh", "zew" and "extend".

	binutils/
	* testsuite/binutils-all/mips/mips16-extend-insn.d: New test.
	* testsuite/binutils-all/mips/mips16-extend-insn.s: New test
	source.
	* testsuite/binutils-all/mips/mips.exp: Run the new tests.
2016-12-23 19:33:45 +00:00
Tristan Gingold
99b5dbf2e7 Bump version to 2.28.51
bfd/
2016-12-23  Tristan Gingold  <gingold@adacore.com>

	* version.m4: Bump version to 2.28.51
	* configure: Regenerate.

binutils/
2016-12-23  Tristan Gingold  <gingold@adacore.com>

	* configure: Regenerate.

gas/
2016-12-23  Tristan Gingold  <gingold@adacore.com>

	* configure: Regenerate.

gprof/
2016-12-23  Tristan Gingold  <gingold@adacore.com>

	* configure: Regenerate.

ld/
2016-12-23  Tristan Gingold  <gingold@adacore.com>

	* configure: Regenerate.

opcodes/
2016-12-23  Tristan Gingold  <gingold@adacore.com>

	* configure: Regenerate.
2016-12-23 09:50:53 +01:00
Tristan Gingold
9703a4ef4d Add marker in NEWS files
binutils/
2016-12-23  Tristan Gingold  <gingold@adacore.com>

	* NEWS: Add marker for 2.28.

gas/
2016-12-23  Tristan Gingold  <gingold@adacore.com>

	* NEWS: Add marker for 2.28.

ld/
2016-12-23  Tristan Gingold  <gingold@adacore.com>

	* NEWS: Add marker for 2.28.
2016-12-23 09:43:13 +01:00
Tristan Gingold
e0e7a9d436 Regenerate pot files. 2016-12-23 09:32:28 +01:00
Maciej W. Rozycki
11dd08e9a0 MIPS16/opcodes: Respect ISA and ASE in disassembly
Limit MIPS16 instruction disassembly according to the ISA level and ASE
set selected, as with the regular MIPS and microMIPS instruction sets.
Retain the property of `objdump -m mips:16' disassembling all MIPS16
instructions however, regardless of any ISA level recorded in the binary
examined.

To validate the disassembler use the GAS test suite for its convenience
of running tests across multiple ISAs, even though placing the tests in
the binutils test suite would be more appropriate.  Adjust the single
binutils test which depends on 64-bit instruction disassembly to have
the ISA level required actually recorded in the binary examined.

	opcodes/
	* mips-dis.c (mips_arch_choices): Use ISA_MIPS64 rather than
	ISA_MIPS3 as the `isa' selection in the `bfd_mach_mips16' entry.
	(print_insn_mips16): Check opcode entries for validity against
	the ISA level and ASE set selected.

	binutils/
	* testsuite/binutils-all/mips/mips16-undecoded.s: Use `.module'
	rather than `.set' to set the ISA level.

	gas/
	* testsuite/gas/mips/mips16-sub.d: New test.
	* testsuite/gas/mips/mips16-32@mips16-sub.d: New test.
	* testsuite/gas/mips/mips16e-32@mips16-sub.d: New test.
	* testsuite/gas/mips/mips16e-sub.d: New test.
	* testsuite/gas/mips/mips16-32@mips16e-sub.d: New test.
	* testsuite/gas/mips/mips16-64@mips16e-sub.d: New test.
	* testsuite/gas/mips/mips16e-64-sub.d: New test.
	* testsuite/gas/mips/mips16-32@mips16e-64-sub.d: New test.
	* testsuite/gas/mips/mips16-64@mips16e-64-sub.d: New test.
	* testsuite/gas/mips/mips16e-32@mips16e-64-sub.d: New test.
	* testsuite/gas/mips/mips16-sub.s: New test source.
	* testsuite/gas/mips/mips16e-sub.s: New test source.
	* testsuite/gas/mips/mips16e-64-sub.s: New test source.
	* testsuite/gas/mips/mips.exp: Run the new tests.
2016-12-20 12:05:48 +00:00