Commit graph

77775 commits

Author SHA1 Message Date
Pedro Alves
c718be4726 save breakpoints: Make tilde-expanded filename visible.
Most commands in GDB show the tilde-expanded filename in user visible
output.  This makes "save breakpoints" behave the same.

Before:

  (gdb) save breakpoints ~/a/b
  Unable to open file '~/a/b' for saving (No such file or directory)

After:

  (gdb) save breakpoints ~/a/b
  Unable to open file '/home/pedro/a/b' for saving (No such file or directory)

Tested on x86_64 Fedora 17.

gdb/
2013-08-09  Pedro Alves  <palves@redhat.com>

        * breakpoint.c (save_breakpoints): Show tilde-expanded filename in
	error message.
2013-08-09 15:33:09 +00:00
Pedro Alves
1e351ed1b3 gcore: Make tilde-expanded filename visible.
Most commands in GDB show the tilde-expanded filename in user visible
output.  This makes gcore behave the same.

Before:

  (gdb) generate-core-file ~/a/b
  Failed to open '~/a/b' for output.
  (gdb) generate-core-file ~/core
  Saved corefile ~/core

After:

  (gdb) generate-core-file ~/a/b
  Failed to open '/home/pedro/a/b' for output.
  (gdb) generate-core-file ~/core
  Saved corefile /home/pedro/core

Tested on x86_64 Fedora 17.

gdb/
2013-08-09  Pedro Alves  <palves@redhat.com>

	* gcore.c (create_gcore_bfd): Don't use tilde_expand here.
	(gcore_command): Use tilde_expand here, and when showing the
	filename to the user, show the expanded version.
2013-08-09 15:30:48 +00:00
Nick Clifton
4046d87a36 * elf32-rl78.c (rl78_elf_merge_private_bfd_data): Complain if G10
flag bits do not match.
	(rl78_elf_print_private_bfd_data): Describe G10 flag.

	* readelf.c (get_machine_flags): Handle RL78 G10 flag.

	* config/tc-rl78.c (elf_flags): New variable.
	(enum options): Add OPTION_G10.
	(md_longopts): Add mg10.
	(md_parse_option): Parse -mg10.
	(rl78_elf_final_processing): New function.
	* config/tc-rl78.c (tc_final_processing): Define.
	* doc/c-rl78.texi: Document -mg10 option.

	* rl78.c (E_FLAG_RL78_G10): Define.

	* lib/ld-lib.exp (check_shared_lib_support): Note that the RL78
	does not support shared library generation.
2013-08-09 10:40:04 +00:00
Yao Qi
1ed8d8006b gdb/
* stack.c (read_frame_arg): Set 'entryval_error' to NULL if
	'entryval' is set.

gdb/testsuite/

	* gdb.trace/collection.exp (gdb_collect_args_test): Set
	"only" and "both" to 'print entry-values' before selecting
	trace frame.
2013-08-09 00:35:40 +00:00
Alan Modra
a780258f0e daily update 2013-08-09 00:00:04 +00:00
Pedro Alves
47ecca85db gcore: expand tilde in filename.
Before this patch, this fails:

 (gdb) generate-core-file ~/core
 Failed to open '~/core' for output.

After the patch:

 (gdb) generate-core-file ~/core
 Saved corefile ~/core

gdb/
2013-08-08  Azat Khuzhin  <a3at.mail@gmail.com>  (tiny change)

	* gcore.c (create_gcore_bfd): Use tilde_expand.
2013-08-08 17:00:42 +00:00
Yao Qi
82a0a75ff0 gdb/
* frame.h (read_frame_local): Declare.
	* mi/mi-cmd-stack.c (list_args_or_locals): Call
	read_frame_local.
	* stack.c (read_frame_local): New.

gdb/testsuite/

	* gdb.trace/mi-trace-unavailable.exp: Don't set
	"print entry-values" to "no".
	(test_trace_unavailable): Set various values to
	"print entry-values" to test that the output of
	'-stack-list-locals' is not affected, and then set
	set "print entry-values" to "no".
2013-08-08 05:10:10 +00:00
Yao Qi
5c4aa40b93 gdb/
* mi/mi-cmd-stack.c: Update comments to function
	list_args_or_locals.
2013-08-08 03:48:35 +00:00
Kevin Buettner
317cc67d75 * gdb-if.c (hw_breakpoints): Remove.
(sim_store_register): Add an assert() to make sure PC is in range.
	Delete code which referenced hw_breakpoints[].
2013-08-08 00:10:01 +00:00
Alan Modra
b04006e69c daily update 2013-08-08 00:00:04 +00:00
Doug Evans
ac52f9a22a * gdb.python/py-value-cc.cc: Renamed from py-value.cc.
* gdb.python/py-value-cc.exp: Update.
	* gdb.python/py-value.exp: Use different names for .o files for
	C and C++.  Only perform C++ tests if !skip_cplus_tests.
2013-08-07 23:51:45 +00:00
Tom Tromey
b93601f320 fix PR symtab/15028
This fixes some derivation.exp regressions with "dwz -m".

The bug here is that the imported PU is given language_minimal.
However, it ought to be C++.

The "pretend language" machinery exists to solve this problem, but it
wasn't handled in process_psymtab_comp_unit.  So, this patch adds it
there.

Built and regtested, both normally and using "dwz -m", on x86-64
Fedora 18.

	PR symtab/15028:
	* dwarf2read.c (struct process_psymtab_comp_unit_data): New.
	(process_psymtab_comp_unit_reader): Use it.
	(process_psymtab_comp_unit): Update.  Add "pretend_language"
	argument.
	(dwarf2_build_psymtabs_hard): Update.
	(scan_partial_symbols): Pass CU's language to
	process_psymtab_comp_unit.
2013-08-07 20:10:36 +00:00
Tom Tromey
fa760f46b5 remove unused qf method
After the previous patch in the series, nothing uses the "quick"
method find_symbol_file.

This patch removes it.

Tested by rebuilding.

	* dwarf2read.c (dw2_get_primary_filename_reader): Remove.
	(dwarf2_gdb_index_functions): Update.
	* psymtab.c (find_symbol_file_from_partial): Remove.
	(psym_functions): Update.
	* symfile.h (struct quick_symbol_functions) <find_symbol_file>:
	Remove.
2013-08-07 20:06:37 +00:00
Tom Tromey
bf6d8a91ea use language of the main symbol
With "dwz -m", "main" appears in both the PU and the importing CU when
running anon-struct.exp.  However, the PU does not have a file name.
So, find_main_filename returns the empty string, making
deduce_language_from_filename return language_unknown.

This patch fixes this problem by changing gdb to use the ordinary
symbol-lookup functions to find "main"'s symbol.  Then, it examines the
symbol's language.

I think this is cleaner than the current approach.  For one thing it
avoids trying to guess the language based on the source file name,
instead deferring to the presumably more reliable debuginfo.

Another possible fix would have been to change how the file name is
found via the "qf" methods.  However, I think the approach given is
preferable for the reason outlined above.

This required a minor test suite change, as now a symtab is expanded
during the search for "main".

Built and regtested (both ways) on x86-64 Fedora 18.

	* symfile.c (set_initial_language): Look up "main" symbol
	and use its language.
	* symtab.c (find_main_filename): Remove.
	* symtab.h (find_main_filename): Remove.

	* gdb.base/maint.exp: Allow zero symtabs to be expanded.
2013-08-07 20:03:52 +00:00
Tom Tromey
f9125b6c6c fix recursively_compute_inclusions and add dwz test case
Doug pointed out a while ago that in the final dwz -m patch, nothing
ever set symtab::user.

This patch fixes this oversight and adds a test case showing why it is
important.

Built and regtested (both ways) on x86-64 Fedora 18.
The new test unconditionally tests the partial unit machinery, which I
think is an added plus.

	* dwarf2read.c (recursively_compute_inclusions): Add
	"immediate_parent" argument.  Set symtab's "user" field
	if not set.
	(compute_symtab_includes): Update.

	* gdb.dwarf2/dwz.exp: New file.
2013-08-07 19:57:51 +00:00
Tom Tromey
fdbb204be9 also filter label symbols
The bug here is that, with dwz -m, a function (and a label) appear in
both a PU and a CU when running cplabel.exp.  So, a breakpoint gets
two locations:

    (gdb) break foo::bar:to_the_top
    Breakpoint 2 at 0x400503: foo::bar:to_the_top. (2 locations)

What is especially wacky is that both locations are at the same place:

    (gdb) info b
    Num     Type           Disp Enb Address            What
    1       breakpoint     keep y   <MULTIPLE>
    1.1                         y     0x000000000040051c foo::bar:get_out_of_here
    1.2                         y     0x000000000040051c foo::bar:get_out_of_here

This happens due to the weird way we run "dwz -m".
It's unclear to me that this would ever happen for real code.

While I think this borders on "diminishing returns" territory, the fix
is pretty straightforward: use the existing address-filtering function
in linespec to also filter when looking at labels.

Built and regtested (both ways) on x86-64 Fedora 18.

	* linespec.c (convert_linespec_to_sals): Use maybe_add_address
	when adding label symbols.
2013-08-07 19:52:16 +00:00
Cary Coutant
e44c371564 gold/
Revert support for v2 DWP files:

	2013-03-01  Cary Coutant  <ccoutant@google.com>

	    Add dwp support for v2 DWARF package file format.
	    * dwarf_reader.cc (Dwarf_info_reader::visit_type_unit): Add
	    tu_length parameter.  Adjust all callers.
	    * dwarf_reader.h (Dwarf_info_reader::visit_type_unit): Likewise.
	    * dwp.cc: Include dwarf.h.
	    (Section_bounds): New struct type.
	    (Unit_set): New struct type.
	    (Dwo_file::Dwo_file): Initialize new data member.
	    (Dwo_file::read_compunit_index, Dwo_file::read_typeunit_index):
	    Combine and rename to...
	    (Dwo_file::read_unit_index): ...this.
	    (Dwo_file::sized_read_compunit_index)
	    (Dwo_file::sized_read_typeunit_index): Combine and rename to...
	    (Dwo_file::sized_read_unit_index): ...this.
	    (Dwo_file::copy_section): Remove section_name, is_str_offsets
	    parameters; add section_id parameter.
	    (Dwo_file::add_cu_set, Dwo_file::add_tu_set): Combine and rename to...
	    (Dwo_file::add_unit_set): ...this.
	    (Dwo_file::shndx_map_): Remove.
	    (Dwo_file::sect_offsets_): New data member.
	    (Dwp_output_file::Dwp_output_file): Initialize new data members.
	    (Dwp_output_file::add_section): Rename to...
	    (Dwp_output_file::add_contribution): ...this.
	    (Dwp_output_file::add_cu_set): Combine parameters into a struct.
	    (Dwp_output_file::add_tu_set): Likewise.
	    (Dwp_output_file::Contribution): New type.
	    (Dwp_output_file::Section::contributions): New data member.
	    (Dwp_output_file::Cu_or_tu_set): Remove.
	    (Dwp_output_file::Section::Section): New ctor.
	    (Dwp_output_file::Dwp_index::Shndx_pool): Remove.
	    (Dwp_output_file::Dwp_index::Section_table): New type.
	    (Dwp_output_file::Dwp_index::Dwp_index): Initialize new data members.
	    (Dwp_output_file::Dwp_index::enter_set): Change type of "set"
	    parameter.
	    (Dwp_output_file::Dwp_index::shndx_pool): Remove.
	    (Dwp_output_file::Dwp_index::shndx_pool_end): Remove.
	    (Dwp_output_file::Dwp_index::section_table): New member function.
	    (Dwp_output_file::Dwp_index::section_table_end): New member function.
	    (Dwp_output_file::Dwp_index::shndx_pool_size): Remove.
	    (Dwp_output_file::Dwp_index::section_table_rows): New member function.
	    (Dwp_output_file::Dwp_index::section_table_cols): New member function.
	    (Dwp_output_file::Dwp_index::shndx_pool_): Remove.
	    (Dwp_output_file::Dwp_index::section_table_): New data member.
	    (Dwp_output_file::Dwp_index::section_mask_): New data member.
	    (Dwp_output_file::add_output_section): New member function.
	    (Dwp_output_file::write_new_section): New member function.
	    (Dwp_output_file::write_contributions): New member function.
	    (Dwp_output_file::section_id_map_): New data member.
	    (class Dwo_id_info_reader): Remove.
	    (class Unit_reader): New class.
	    (get_dwarf_section_name): New function.
	    (Dwo_file::read_executable): Adjust initializations of class data.
	    (Dwo_file::read): Add support for v2 package file format.
	    (Dwo_file::read_unit_index): Likewise.
	    (Dwo_file::sized_read_unit_index): Likewise.
	    (Dwo_file::copy_section): Likewise.
	    (Dwo_file::add_unit_set): Likewise.
	    (Dwp_output_file::add_output_section): Likewise.
	    (Dwp_output_file::add_contribution): Likewise.
	    (Dwp_output_file::Dwp_index::find_or_add): Use row index to check
	    for empty slot.
	    (Dwp_output_file::Dwp_index::enter_set): Add support for v2 package
	    file format.
	    (Dwp_output_file::Dwp_index::grow): Use row index to check for empty
	    slot.
	    (Dwp_output_file::initialize): Remove unused function.
	    (Dwp_output_file::finalize): Add support for v2 package file format.
	    (Dwp_output_file::write_index): Likewise.
	    * gdb-index.cc (Gdb_index_info_reader::visit_type_unit): Adjust
	    function prototype.
2013-08-07 17:11:24 +00:00
DJ Delorie
3c6331b4a5 merge from gcc 2013-08-07 15:04:28 +00:00
Ulrich Weigand
49de16906f 2013-08-07 Raunaq Bathija <raunaq12@in.ibm.com>
Ulrich Weigand  <uweigand@de.ibm.com>

	* configure.tgt (powerpc64-*-aix*): Match powerpc64 running aix.
	* configure.host (powerpc64-*-aix*): Likewise.
2013-08-07 14:42:34 +00:00
Ulrich Weigand
b08ee99f15 2013-08-07 Raunaq Bathija <raunaq12@in.ibm.com>
Ulrich Weigand  <uweigand@de.ibm.com>

	* gdb_ptrace.h: Use ptrace64 instead of ptrace if HAVE_PTRACE64
	is defined.
	* rs6000-nat.c: Check for __ld_info64_ if compiling 64 BIT gdb.
	(rs6000_ptrace32): Call ptrace64 instead of ptrace if present.
	(rs6000_ptrace64): Call ptace64 instead of ptracex if present.
	* configure.ac: Check for ptrace64.
	* configure, config.in: Regenerate.
2013-08-07 14:39:57 +00:00
Ulrich Weigand
fecf803efa 2013-08-07 Raunaq Bathija <raunaq12@in.ibm.com>
Ulrich Weigand  <uweigand@de.ibm.com>

	* aixthread.c: Call ptrace64 instead of ptracex if defined.
	Call ptrace64 instead of ptrace if defined.
	Add macro addr_ptr to take care of ptrace address argument.
	(pdc_read_regs): Likewise.
	(pdc_write_regs): Likewise.
	(aix_thread_resume): Likewise.
	(fetch_regs_kernel_thread): Likewise.
	(store_regs_kernel_thread): Likewise.
2013-08-07 13:24:26 +00:00
Anton Blanchard
3bb5e4a872 2013-08-07 Anton Blanchard <anton@samba.org>
* MAINTAINERS: Add myself to Write After Approval.
2013-08-07 08:00:55 +00:00
Alan Modra
2d8c526bfb daily update 2013-08-07 00:00:04 +00:00
Richard Sandiford
ee5734f078 opcodes/
2013-08-06  Jürgen Urban  <JuergenUrban@gmx.de>

	* mips-opc.c (mips_builtin_opcodes): Add a suffixless version of
	VCLIPW.

gas/
2013-08-06  Jürgen Urban  <JuergenUrban@gmx.de>

	* config/tc-mips.c (match_vu0_suffix_operand): Allow single-channel
	suffixes to be elided too.
	(mips_lookup_insn): Don't reject INSN2_VU0_CHANNEL_SUFFIX here.
	(mips_ip): Assume .xyzw if no VU0 suffix is specified.  Allow +N
	to be omitted too.

gas/testsuite/
2013-08-06  Jürgen Urban  <JuergenUrban@gmx.de>

	* gas/mips/r5900-error-vu0.s, gas/mips/r5900-error-vu0.l,
	gas/mips/r5900-full-vu0.s, gas/mips/r5900-full-vu0.d: Allow
	single-channel suffixes to be elided.
2013-08-06 19:27:07 +00:00
Alan Modra
fdd57b168c daily update 2013-08-06 00:00:05 +00:00
Richard Sandiford
138964030f bfd/
2013-08-05  John Tytgat  <john@bass-software.com>

	* po/BLD-POTFILES.in: Regenerate.
	* po/SRC-POTFILES.in: Likewise.

gas/
2013-08-05  John Tytgat  <john@bass-software.com>

	* po/POTFILES.in: Regenerate.

gprof/
2013-08-05  John Tytgat  <john@bass-software.com>

	* po/POTFILES.in: Regenerate.
2013-08-05 21:58:23 +00:00
Eric Botcazou
fb49eea0b5 * sparc-opc.c (v9andleon): Fix thinko. 2013-08-05 17:04:08 +00:00
Tom Tromey
12070676a9 more add_target removals
This removes a few more erroneous calls to add_target.  These calls
end up installing the target in a user-visible way; but these targets
are all auto-activated and, I think, should never be explicitly
requested.

I have no way to test these.

	* aix-thread.c (_initialize_aix_thread): Use
	complete_target_initialization.
	* bsd-uthread.c (_initialize_bsd_uthread): Use
	complete_target_initialization.
	* dec-thread.c (_initialize_dec_thread): Use
	complete_target_initialization.
	* ravenscar-thread.c (_initialize_ravenscar): Use
	complete_target_initialization.
	* sol-thread.c (_initialize_sol_thread): Use
	complete_target_initialization.
	* spu-multiarch.c (_initialize_spu_multiarch): Use
	complete_target_initialization.
2013-08-05 16:54:27 +00:00
Eric Botcazou
d6787ef95c gas/
* config/tc-sparc.c (sparc_arch_types): Add leon.
	(sparc_arch): Move sparc4 around and add leon.
	(sparc_target_format): Document -Aleon.
	* doc/c-sparc.texi: Likewise.
include/
	* opcode/sparc.h (sparc_opcode_arch_val): Add SPARC_OPCODE_ARCH_LEON.
opcodes/
	* sparc-dis.c (compute_arch_mask): Set SPARC_OPCODE_ARCH_LEON bit for
	bfd_mach_sparc.
	* sparc-opc.c (MASK_LEON): Define.
	(v6, v6notlet, v7, v8, v6notv9): Add MASK_LEON.
	(letandleon): New macro.
	(v9andleon): Likewise.
	(sparc_opc): Add leon.
	(umac): Enable for letandleon.
	(smac): Likewise.
	(casa): Enable for v9andleon.
	(cas): Likewise.
	(casl): Likewise.
2013-08-05 16:11:07 +00:00
Mike Stump
303a26609a Remove:
2013-07-10  Jack Howarth  <howarth@bromo.med.uc.edu>

       PR target/57792
       * configure.ac: Use --with-sysroot=\"`xcrun --show-sdk-path`\" on darwin13 and later.
       * configure: Regenerated.
2013-08-05 16:05:32 +00:00
Tom Tromey
7c7b66552d remove msymbol_objfile
This is another patch in my ongoing series to "split" objfile to share
more read-only data across inferiors.  See

    http://sourceware.org/gdb/wiki/ObjfileSplitting

When symbols are finally shared, there will be no back-link from the
symbol to its containing objfile, because there may be more than one
such objfile.  So, all such back-links must be removed.

One hidden back-link is the msymbol_objfile function.  Since
(eventually) a symbol may appear in more than one objfile, trying to
look up the objfile given just a symbol cannot work.

This patch removes msymbol_objfile in favor of using a bound minimal
symbol.  It introduces a new function to make this conversion simpler
in some spots.

The bonus of this patch is that using msymbol_objfile is slower than
simply looking up the owning objfile in the first place.

Built and regtested on x86-64 Fedora 18.

	* ada-exp.y (write_var_or_type): Use bound_minimal_symbol.
	* ada-lang.c (ada_lookup_simple_minsym): Return
	bound_minimal_symbol.
	* ada-lang.h (ada_lookup_simple_minsym): Update.
	* c-exp.y (variable): Use lookup_bound_minimal_symbol.
	* f-exp.y (variable): Use lookup_bound_minimal_symbol.
	* go-exp.y (variable): Use lookup_bound_minimal_symbol.
	* jv-exp.y (push_expression_name): Use lookup_bound_minimal_symbol.
	* m2-exp.y (variable): Use lookup_bound_minimal_symbol.
	* minsyms.c (msymbol_objfile): Remove.
	(lookup_minimal_symbol_internal): New function, from
	lookup_minimal_symbol.
	(lookup_minimal_symbol): Rewrite using
	lookup_minimal_symbol_internal.
	(lookup_bound_minimal_symbol): New function.
	* minsyms.h (msymbol_objfile): Remove.
	(lookup_bound_minimal_symbol): Declare.
	* p-exp.y (variable): Use lookup_bound_minimal_symbol.
	* parse.c (write_exp_msymbol): Change parameter to a
	bound_minimal_symbol.
	(write_dollar_variable): Use lookup_bound_minimal_symbol.
	* parser-defs.h (write_exp_msymbol): Update.
	* printcmd.c (address_info): Use lookup_bound_minimal_symbol.
	* symfile.c (simple_read_overlay_table): Use
	lookup_bound_minimal_symbol.
	* symtab.c (skip_prologue_sal): Don't use msymbol_objfile.
	(search_symbols): Likewise.
	(print_msymbol_info): Take a bound_minimal_symbol argument.
	(symtab_symbol_info, rbreak_command): Update.
	* symtab.h (struct symbol_search) <msymbol>: Change type
	to bound_minimal_symbol.
	* valops.c (find_function_in_inferior): Use
	lookup_bound_minimal_symbol.
	* value.c (value_fn_field): Use lookup_bound_minimal_symbol.
2013-08-05 15:51:02 +00:00
Sanimir Agovic
6e8c566101 doc: gdbserver allows for subsequent and not for multiple simultaneous connections.
doc/

2013-08-05  Sanimir Agovic  <sanimir.agovic@intel.com>

	* gdb.texinfo (TCP port allocation lifecycle): Gdbserver by default
	allows for subsequent and not for additional (multiple simultaneous)
        connections.
2013-08-05 15:39:25 +00:00
Jan Kratochvil
934b9bace2 gdb/
Code cleanup.
	* remote.c (cleanup_sigint_signal_handler): Rename the declaration
	to ...
	(async_cleanup_sigint_signal_handler): ... this.
	(initialize_sigint_signal_handler): Remove declaration.
	(handle_remote_sigint): Rename the declaration to ...
	(async_handle_remote_sigint): ... this.
	(handle_remote_sigint_twice): Rename the declaration to ...
	(async_handle_remote_sigint_twice): ... this.
	(async_remote_interrupt, async_remote_interrupt_twice)
	(remote_interrupt): Remove the declarations.
	(remote_interrupt_twice): Rename the declaration ...
	(sync_remote_interrupt_twice): ... this.
	(sigint_remote_twice_token): Rename the variable to ...
	(async_sigint_remote_twice_token): ... this.
	(sigint_remote_token): Rename the variable to ...
	(async_sigint_remote_token): ... this.
	(initialize_sigint_signal_handler): Rename the function to ...
	(async_initialize_sigint_signal_handler): ... this.  Update the name
	inside.
	(handle_remote_sigint): Rename the function to ...
	(async_handle_remote_sigint): ... this.  Update the names inside.
	(handle_remote_sigint_twice): Rename the function to ...
	(async_handle_remote_sigint_twice): ... this.  Update the names inside.
	(cleanup_sigint_signal_handler): Rename the function to ...
	(async_cleanup_sigint_signal_handler): ... this.
	(remote_interrupt): Rename the function to ...
	(sync_remote_interrupt): this.  Update the names inside.
	(remote_interrupt_twice): Rename the function to ...
	(sync_remote_interrupt_twice): this.  Update the names inside.
	(remote_terminal_inferior, remote_terminal_ours, remote_wait_as)
	(_initialize_remote): Update the names inside.
2013-08-05 15:03:06 +00:00
Richard Sandiford
da8bca9157 gas/
* config/tc-mips.c (mips_lookup_insn): Make length and opend signed.
2013-08-05 08:31:48 +00:00
Alan Modra
b3ce1f8a94 daily update 2013-08-05 00:00:05 +00:00
Richard Sandiford
14daeee3ae include/opcode/
2013-08-04  Jürgen Urban  <JuergenUrban@gmx.de>
	    Richard Sandiford  <rdsandiford@googlemail.com>

	* mips.h: Document new VU0 operand characters.
	(OP_VU0_SUFFIX, OP_VU0_MATCH_SUFFIX): New mips_operand_types.
	(OP_REG_VF, OP_REG_VI, OP_REG_R5900_I, OP_REG_R5900_Q, OP_REG_R5900_R)
	(OP_REG_R5900_ACC): New mips_reg_operand_types.
	(INSN2_VU0_CHANNEL_SUFFIX): New macro.
	(mips_vu0_channel_mask): Declare.

opcodes/
2013-08-04  Jürgen Urban  <JuergenUrban@gmx.de>
	    Richard Sandiford  <rdsandiford@googlemail.com>

	* mips-dis.c (print_reg): Handle OP_REG_VI, OP_REG_VF, OP_REG_R5900_I,
	OP_REG_R5900_Q, OP_REG_R5900_R and OP_REG_R5900_ACC.
	(print_vu0_channel): New function.
	(print_insn_arg): Handle OP_VU0_SUFFIX and OP_VU0_MATCH_SUFFIX.
	(print_insn_args): Handle '#'.
	(print_insn_mips): Handle INSN2_VU0_CHANNEL_SUFFIX.
	* mips-opc.c (mips_vu0_channel_mask): New constant.
	(decode_mips_operand): Handle new VU0 operand types.
	(VU0, VU0CH): New macros.
	(mips_builtin_opcodes): Add VU0 opcodes.  Use "+7" rather than "E"
	for LQC2 and SQC2.  Use "+9" rather than "G" for EE CFC2 and CTC2.
	Use "+6" rather than "G" for QMFC2 and QMTC2.

gas/
2013-08-04  Jürgen Urban  <JuergenUrban@gmx.de>
	    Richard Sandiford  <rdsandiford@googlemail.com>

	* config/tc-mips.c (MAX_OPERANDS): Bump to 6.
	(RWARN): Bump to 0x8000000.
	(RTYPE_VI, RTYPE_VF, RTYPE_R5900_I, RTYPE_R5900_Q, RTYPE_R5900_R)
	(RTYPE_R5900_ACC): New register types.
	(RTYPE_MASK): Include them.
	(R5900_I_NAMES, R5900_Q_NAMES, R5900_R_NAMES, R5900_ACC_NAMES): New
	macros.
	(reg_names): Include them.
	(mips_parse_register_1): New function, split out from...
	(mips_parse_register): ...here.  Add a channels_ptr parameter.
	Look for VU0 channel suffixes when nonnull.
	(reg_lookup): Update the call to mips_parse_register.
	(mips_parse_vu0_channels): New function.
	(OT_CHANNELS, OT_DOUBLE_CHAR): New mips_operand_token_types.
	(mips_operand_token): Add a "channels" field to the union.
	Extend the comment above "ch" to OT_DOUBLE_CHAR.
	(mips_parse_base_start): Match -- and ++.  Handle channel suffixes.
	(mips_parse_argument_token): Handle channel suffixes here too.
	(validate_mips_insn): Handle INSN2_VU0_CHANNEL_SUFFIX.
	Ignore OP_VU0_MATCH_SUFFIX when calculating the used bits.
	Handle '#' formats.
	(md_begin): Register $vfN and $vfI registers.
	(operand_reg_mask): Handle OP_VU0_SUFFIX and OP_VU0_MATCH_SUFFIX.
	(convert_reg_type): Handle OP_REG_VI, OP_REG_VF, OP_REG_R5900_I,
	OP_REG_R5900_Q, OP_REG_R5900_R and OP_REG_R5900_ACC.
	(match_vu0_suffix_operand): New function.
	(match_operand): Handle OP_VU0_SUFFIX and OP_VU0_MATCH_SUFFIX.
	(macro): Use "+7" rather than "E" for LDQ2 and STQ2.
	(mips_lookup_insn): New function.
	(mips_ip): Use it.  Allow "+K" operands to be elided at the end
	of an instruction.  Handle '#' sequences.

gas/testsuite/
2013-08-04  Jürgen Urban  <JuergenUrban@gmx.de>

	* gas/mips/r5900-vu0.d: Expect $vfN and $viN instead of numeric
	coprocessor registers.
	* gas/mips/r5900-all-vu0.s, gas/mips/r5900-all-vu0.d,
	gas/mips/r5900-full-vu0.s, gas/mips/r5900-full-vu0.d,
	gas/mips/r5900-error-vu0.s, gas/mips/r5900-error-vu0.l: New tests.
	* gas/mips/mips.exp: Run them.
2013-08-04 07:31:39 +00:00
Alan Modra
ba5b2044e8 daily update 2013-08-04 00:00:05 +00:00
Richard Sandiford
c0ebe87429 gas/
* config/tc-mips.c (macro, mips16_macro): Create an array of operand
	values and use it instead of sreg, treg, xreg, etc.
2013-08-03 11:11:46 +00:00
Richard Sandiford
3ccad066ac include/opcode/
* mips.h (mips_pcrel_operand): Inherit from mips_int_operand.
	(mips_int_operand_min, mips_int_operand_max): New functions.
	(mips_decode_pcrel_operand): Use mips_decode_int_operand.

opcodes/
	* mips-formats.h (PCREL): Reorder parameters and update the definition
	to match new mips_pcrel_operand layout.
	(JUMP, JALX, BRANCH): Update accordingly.
	* mips16-opc.c (decode_mips16_operand): Likewise.

gas/
	* config/tc-mips.c (match_int_operand): Use mips_int_operand_min
	and mips_int_operand_max.
	(mips16_immed_operand, mips16_immed_operands, MIPS16_NUM_IMMED):
	Delete.
	(mips16_immed_operand, mips16_immed_in_range_p): New functions.
	(mips16_immed, mips16_extended_frag): Use them.  Use mips_int_operand
	instead of mips16_immed_operand.
2013-08-03 10:49:48 +00:00
Richard Sandiford
0acfaea6cd gas/
* config/tc-mips.c (mips16_macro): Don't use move_register.
	(mips16_ip): Allow macros to use 'p'.

gas/testsuite/
	* gas/mips/mips16-macro.s, gas/mips/mips16-macro.d: New test.
	* gas/mips/mips.exp: Run it.
2013-08-03 10:41:13 +00:00
Alan Modra
18342312e1 daily update 2013-08-03 00:00:04 +00:00
Tom Tromey
3a1115a0cc fix PR symtab/15719
This patch fixes PR symtab/15719.

The bug is that "watch -location" crashes on a certain expression.

The problem is that fetch_subexp_value is catching an exception.
For ordinary watchpoints this is ok; but for location watchpoints,
it is better for the exception to propagate.

Built and regtested on x86-64 Fedora 18.
New test case included.

	PR symtab/15719:
	* breakpoint.c (update_watchpoint, watchpoint_check)
	(watch_command_1): Update.
	* eval.c (fetch_subexp_value): Add "preserve_errors"
	parameter.
	* ppc-linux-nat.c (check_condition): Update.
	* value.h (fetch_subexp_value): Update.

	* gdb.base/watchpoint.c (struct foo5): New.
	(nullptr): New global.
	* gdb.base/watchpoint.exp (test_watch_location): Add test.
2013-08-02 16:41:08 +00:00
Andrew Burgess
58b19776a6 Remove duplicate call to add_file_handler.
http://sourceware.org/ml/gdb-patches/2013-08/msg00067.html

This call to add_file_handler is a duplicate of one that is in
gdb_setup_readline that is always executed.

gdb/ChangeLog

        * mi/mi-interp.c (mi_interpreter_resume): Remove call to
        add_file_handler.
2013-08-02 10:31:40 +00:00
Doug Evans
7ee85ab10c PR symtab/15691
* dwarf2read.c (struct dwarf2_per_cu_data): New member tu_read.
	(fill_in_sig_entry_from_dwo_entry): Reorganize asserts.
	Add assert of sig_entry->dwo_unit == NULL.
	(lookup_dwo_signatured_type): Don't assign TU to a DWO if the TU
	had already been read.
	(read_signatured_type): Set per_cu.tu_read.

	testsuite/
	* gdb.dwarf2/fission-mix.exp: New file.
	* gdb.dwarf2/fission-mix.h: New file.
	* gdb.dwarf2/fission-mix.c: New file.
	* gdb.dwarf2/fission-mix2.c: New file.
2013-08-02 00:33:07 +00:00
Alan Modra
2e204b8240 daily update 2013-08-02 00:00:04 +00:00
Doug Evans
b846d303c6 PR symtab/15695
* valops.c (value_struct_elt): Add missing call to check_typedef.
	(value_find_oload_method_list): Ditto.

	testsuite/
	* gdb.base/func-ptr.exp: New file.
	* gdb.base/func-ptr.c: New file.
2013-08-01 23:59:48 +00:00
Doug Evans
b52109bc0c * symtab.c (do_free_search_symbols_cleanup): Change arg to,
effectively, struct symbol_search **.
	(make_cleanup_free_search_symbols): Change arg to struct
	symbol_search **.  All callers updated.
	(compare_search_syms): Compare symtab file name and block as well.
	(search_symbols_equal): New function.
	(sort_search_symbols_remove_dups): Renamed from sort_search_symbols.
	New args new_head, new_tail.  Result is now void.  Remove dups after
	sorting the symbols.
	(search_symbols): Sort all found symbols once, after all have been
	found, and remove duplicates.  Simplify cleanup tracking of result.
	* symtab.h (make_cleanup_free_search_symbols): Update prototype.
2013-08-01 23:47:02 +00:00
Doug Evans
ec94af8326 Further workarounds for binutils/15021.
* dwarf2read.c (recursively_compute_inclusions): Change type of result
	parameter to VEC (symtab_ptr) **.  New parameter all_type_symtabs.
	Watch for duplicate symtabs coming from type units.
	(compute_symtab_includes): Update call to
	recursively_compute_inclusions. Build vector of included symtabs
	instead of per_cus.
	* symtab.h (symtab_ptr): New typedef.
	(DEF_VEC_P (symtab_ptr)): New VEC type.
	* linespec.c (symtab_p): Delete.  All uses updated to use symtab_ptr
	instead.
2013-08-01 23:35:04 +00:00
Richard Sandiford
df34fbcce8 opcodes/
* micromips-opc.c (WR_s): Delete.
2013-08-01 22:33:24 +00:00
Richard Sandiford
fc76e73056 include/opcode/
* mips.h (mips_decode_reg_operand): New function.
	(INSN_WRITE_SHIFT, INSN_WRITE_1, INSN_WRITE_2, INSN_WRITE_ALL)
	(INSN_READ_SHIFT, INSN_READ_1, INSN_READ_2, INSN_READ_3, INSN_READ_4)
	(INSN_READ_ALL, INSN_READ_GPR_24, INSN_WRITE_GPR_24, INSN_UDI):
	New macros.
	(INSN_WRITE_GPR_D, INSN_WRITE_GPR_T, INSN_WRITE_FPR_D)
	(INSN_WRITE_FPR_S, INSN_WRITE_FPR_T, INSN_READ_GPR_S, INSN_READ_GPR_T)
	(INSN_READ_FPR_S, INSN_READ_FPR_T, INSN_READ_FPR_R, INSN_WRITE_GPR_S)
	(INSN2_WRITE_GPR_Z, INSN2_WRITE_FPR_Z, INSN2_READ_GPR_Z)
	(INSN2_READ_FPR_Z, INSN2_READ_GPR_D, INSN2_READ_FPR_D)
	(INSN2_WRITE_GPR_MB, INSN2_READ_GPR_MC, INSN2_MOD_GPR_MD)
	(INSN2_READ_GPR_ME, INSN2_MOD_GPR_MF, INSN2_READ_GPR_MG)
	(INSN2_READ_GPR_MJ, INSN2_WRITE_GPR_MJ, INSN2_READ_GPR_MP)
	(INSN2_WRITE_GPR_MP, INSN2_READ_GPR_MQ, INSN2_READ_GP)
	(INSN2_WRITE_GPR_MH, INSN2_READ_GPR_MMN): Delete.  Renumber other
	macros to cover the gaps.
	(INSN2_MOD_SP): Replace with...
	(INSN2_WRITE_SP, INSN2_READ_SP): ...these new macros.
	(MIPS16_INSN_WRITE_X, MIPS16_INSN_WRITE_Y, MIPS16_INSN_WRITE_Z)
	(MIPS16_INSN_WRITE_T, MIPS16_INSN_WRITE_31, MIPS16_INSN_WRITE_GPR_Y)
	(MIPS16_INSN_READ_X, MIPS16_INSN_READ_Y, MIPS16_INSN_READ_Z)
	(MIPS16_INSN_READ_T, MIPS16_INSN_READ_SP, MIPS16_INSN_READ_GPR_X):
	Delete.

opcodes/
	* mips-opc.c (WR_1, WR_2, RD_1, RD_2, RD_3, RD_4, MOD_1, MOD_2, UDI):
	New macros.
	(WR_d, WR_t, WR_D, WR_T, WR_S, RD_s, RD_b, RD_t, RD_S, RD_T, RD_R)
	(WR_z, WR_Z, RD_z, RD_Z, RD_d): Delete.
	(mips_builtin_opcodes): Use the new position-based read-write flags
	instead of field-based ones.  Use UDI for "udi..." instructions.
	* mips16-opc.c (WR_1, WR_2, RD_1, RD_2, RD_3, RD_4, MOD_1, MOD_2):
	New macros.
	(WR_x, WR_y, WR_z, WR_Y, RD_x, RD_y, RD_Z, RD_X): Delete.
	(RD_T, WR_T, WR_31): Redefine using generic INSN_* flags.
	(WR_SP, RD_16): New macros.
	(RD_SP): Redefine as an INSN2_* flag.
	(MOD_SP): Redefine in terms of RD_SP and WR_SP.
	(mips16_opcodes): Use the new position-based read-write flags
	instead of field-based ones.  Use RD_16 for "nop".  Move RD_SP to
	pinfo2 field.
	* micromips-opc.c (WR_1, WR_2, RD_1, RD_2, RD_3, RD_4, MOD_1, MOD_2):
	New macros.
	(WR_mb, RD_mc, RD_md, WR_md, RD_me, RD_mf, WR_mf, RD_mg, WR_mh, RD_mj)
	(WR_mj, RD_ml, RD_mmn, RD_mp, WR_mp, RD_mq, RD_gp, WR_d, WR_t, WR_D)
	(WR_T, WR_S, RD_s, RD_b, RD_t, RD_T, RD_S, RD_R, RD_D): Delete.
	(RD_sp, WR_sp): Redefine to INSN2_READ_SP and INSN2_WRITE_SP.
	(micromips_opcodes): Use the new position-based read-write flags
	instead of field-based ones.
	* mips-dis.c (print_insn_arg): Use mips_decode_reg_operand.
	(print_insn_mips, print_insn_micromips): Use INSN_WRITE_1 instead
	of field-based flags.

gas/
	* config/tc-mips.c (MAX_OPERANDS): New macro.
	(mips_operand_array): New structure.
	(mips_operands, mips16_operands, micromips_operands): New arrays.
	(micromips_to_32_reg_b_map, micromips_to_32_reg_c_map)
	(micromips_to_32_reg_e_map, micromips_to_32_reg_f_map)
	(micromips_to_32_reg_g_map, micromips_to_32_reg_l_map)
	(micromips_to_32_reg_q_map): Delete.
	(insn_operands, insn_opno, insn_extract_operand): New functions.
	(validate_mips_insn): Take a mips_operand_array as argument and
	use it to build up a list of operands.  Extend to handle INSN_MACRO
	and MIPS16.
	(validate_mips16_insn): New function.
	(validate_micromips_insn): Take a mips_operand_array as argument.
	Handle INSN_MACRO.
	(md_begin): Initialize mips_operands, mips16_operands and
	micromips_operands.  Call validate_mips_insn and
	validate_micromips_insn for macro instructions too.
	Call validate_mips16_insn for MIPS16 instructions.
	(insn_read_mask, insn_write_mask, operand_reg_mask, insn_reg_mask):
	New functions.
	(gpr_read_mask, gpr_write_mask, fpr_read_mask, fpr_write_mask): Use
	them.  Handle INSN_UDI.
	(get_append_method): Use gpr_read_mask.
2013-08-01 20:55:25 +00:00