Include "features/rs6000/powerpc-vsx64.c".
(ppc_supply_vsxregset): New function.
(ppc_collect_vsxregset): New function.
(IS_VSX_PSEUDOREG): New macro.
(IS_EFP_PSEUDOREG): New macro.
(vsx_register_p): New function.
(ppc_vsx_support_p): New function.
(rs6000_builtin_type_vec128): New function.
(rs6000_register_name): Hide upper halves of vs0~vs31. Return
correct names for VSX registers and EFPR registers.
(rs6000_pseudo_register_type): Return correct types for VSX
and EFPR registers.
(rs6000_pseudo_register_reggroup_p): Return correct group for
VSX and EFPR registers.
(ppc_pseudo_register_read): Rename to dfp_pseudo_register_read.
(ppc_pseudo_register_write): Rename to dfp_pseudo_register_write.
(vsx_pseudo_register_read): New function.
(vsx_pseudo_register_write): New function.
(efpr_pseudo_register_read): New function.
(efpr_pseudo_register_write): New function.
(rs6000_pseudo_register_read): Call new VSX and EFPR read functions.
(rs6000_pseudo_register_write): Call new VSX and EFPR write functions.
(rs6000_gdbarch_init): Declare have_vsx.
Initialize new upper half VSX registers.
Initialize VSX-related and EFPR-related pseudo-registers variables.
Adjust the number of pseudo registers accordingly.
* ppc-linux-nat.c: Define PTRACE_GETVSXREGS, PTRACE_SETVSXREGS
and SIZEOF_VSRREGS.
(gdb_vsxregset_t): New type.
(have_ptrace_getsetvsxregs): New variable.
(fetch_vsx_register): New function.
(fetch_register): Handle VSX registers.
(fetch_vsx_registers): New function.
(fetch_ppc_registers): Handle VSX registers.
(store_ppc_registers): Handle VSX registers.
(store_vsx_register): New function.
(store_register): Handle VSX registers.
(store_vsx_registers): New function.
(ppc_linux_read_description): Handle VSX-enabled inferiors.
(gdb_vsxregset_t): New type.
(supply_vsxregset): New function.
(fill_vsxregset): New function.
* ppc-tdep.h (vsx_register_p): New prototype.
(vsx_support_p): New prototype.
(ppc_vsr0_regnum): New variable.
(ppc_vsr0_upper_regnum): Likewise.
(ppc_efpr0_regnum): Likewise.
(ppc_builtin_type_vec128): New type.
(ppc_num_vsrs): New constant.
(ppc_num_vshrs): New constant.
(ppc_num_efprs): Likewise.
Define POWERPC_VEC_VSX PPC_VSR0_UPPER_REGNUM and PPC_VSR31_UPPER_REGNUM.
(ppc_supply_vsxregset): New prototype.
(ppc_collect_vsxregset): New prototype.
* ppc-linux-tdep.c: Include "features/rs6000/powerpc-vsx32l.c"
Include "features/rs6000/powerpc-vsx64l.c".
(_initialize_ppc_linux_tdep): Initialize VSX-enabled targets.
(ppc_linux_regset_sections): Add new ".reg-ppc-vsx" field.
(ppc32_linux_vsxregset): New 32-bit VSX-enabled regset.
(ppc_linux_regset_from_core_section): Handle VSX core section.
(ppc_linux_core_read_description): Support VSX-enabled core files.
* ppc-linux-tdep.h: Declare *tdesc_powerpc_vsx32l
Declare tdesc_powerpc_vsx64l
* corelow.c (get_core_register_section): Support VSX-enabled
core files.
* features/rs6000/power-vsx.xml: New VSX descriptions.
* features/rs6000/powerpc-vsx32.xml: New file.
* features/rs6000/powerpc-vsx32l.xml: New file.
* features/rs6000/powerpc-vsx64.xml: New file.
* features/rs6000/powerpc-vsx64l.xml: New file.
* features/rs6000/powerpc-vsx32.c: New file (generated).
* features/rs6000/powerpc-vsx32l.c: New file (generated).
* features/rs6000/powerpc-vsx64.c: New file (generated).
* features/rs6000/powerpc-vsx64l.c: New file (generated).
* features/Makefile: Updated with new descriptions.
* regformats/rs6000/powerpc-vsx32l.dat: New file (generated).
* regformats/rs6000/powerpc-vsx64l.dat: New file (generated).
* testsuite/gdb.arch/vsx-regs.c: New source file.
* testsuite/gdb.arch/vsx-regs.exp: New testcase.
* testsuite/lib/gdb.exp (skip_vsx_tests): New function.
* macrocmd.c (macro_define_command): Check for NULL argument.
(macro_undef_command): Likewise.
gdb/testsuite:
* gdb.base/macscp.exp: Add regression test for "macro define" or
"macro undef" with no arguments.
* spu-tdep.c (info_spu_dma_cmdlist): Only show entries with
the valid bit set. Ensure display order respects partial
order defined by dependency bits.
testsuite/ChangeLog:
* gdb.arch/spu-info.exp: Updated for "info spu dma" changes.
(linux_nat_has_pending_sigint): New function, based on
linux_nat_has_pending.
(set_ignore_sigint, maybe_clear_ignore_sigint): New functions.
(stop_wait_callback): Remove flush_mask handling. Honor
ignore_sigint. Call maybe_clear_ignore_sigint. Pass NULL
to recursive calls.
(linux_nat_has_pending, flush_callback): Remove.
(linux_nat_filter_event): Check for ignore_sigint.
(linux_nat_wait): Remove flush_mask support and call to
flush_callback. Use set_ignore_sigint and maybe_clear_ignore_sigint.
* linux-nat.h (struct lwp_info): Add ignore_sigint field.
* gdb.threads/manythreads.exp: Use remote_expect instead of after.
Add a test for duplicated SIGINTs.
report events from resumed threads.
* gdb.threads/schedlock.exp (get_args): Update to work for any
value of NUM.
(Top level): Report the number of threads that did not resume.
PR gdb/1158:
* valops.c (value_struct_elt): Treat function-valued field as a
static method.
gdb/testsuite:
* gdb.base/callfuncs.c (struct struct_with_fnptr): New struct.
(function_struct, function_struct_ptr): New globals.
* gdb.base/callfuncs.exp (do_function_calls): Test calling via a
function pointer in a struct.
2008-07-09 Pedro Alves <pedro@codesourcery.com>
* symfile.c (load_command): Reopen the exec file and reread
symbols before anything else.
gdb/testsuite/
2008-07-09 Pedro Alves <pedro@codesourcery.com>
* gdb.base/chng-syms.exp: Don't expect "No symbol ...".
* breakpoint.c (bpstat_copy): Call RELEASE_VALUE on the new OLD_VAL.
gdb/testsuite/
* gdb.base/value-double-free.exp, gdb.base/value-double-free.c: New.
(gdb_compile): If target is *-*-cygwin* or *-*-mingw*, and we're
compiling an executable, link in an object that forces unbuffered
output.
* lib/set_unbuffered_mode.c: New file.
* mi/mi-interp.c (mi_cmd_interpreter_exec): Do no print
^running here.
(mi_on_resume): Print ^running if not previously output.
* mi/mi-main.c (running_result_record_printed): New.
(captured_mi_execute_command): Reset
running_result_record_printed. Use running_result_record_printed
to decide if we should skip ^done.
(mi_execute_async_cli_command): Don't print ^running here.
* mi/mi-main.h (current_token, running_result_record_printed):
Declare.
* gdb.mi/basics.c (main): Add a call to sleep.
* gdb.mi/mi-cli.exp: Adjust for change in line numbers.
* gdb.mi/mi2-cli.exp: Likewise.
* gdb.mi/mi-break.exp: Likewise.
* completer.c (complete_line): Don't special-case
expression_completer.
(expression_completer): Only pass last word to
location_completer.
* c-exp.y (yylex): Check 'token', not 'operator'.
gdb/testsuite
* gdb.base/completion.exp: New tests for field name completion
with spaces, and field name completion with '->'.
* varobj.c (varobj_update): Report changes as vector. Also
return not just a list of varobj, but a list of special structures
that tell what exactly has changed.
* varobj.h (enum varobj_update_error): Rename to
varobj_scope_status.
(struct varobj_update_result_t): New.
(varobj_update): Adjust prototype.
* mi/mi-cmd-var.c: Adjust for changes.