* symtab.c (remove_params): New function.
(make_symbol_overload_list): Use it instead of cplus_demangle.
(overload_list_add_symbol): Likewise. Reorder. Fix memory leak.
New variables.
(i386nbsd_init_abi): Use these to initialize tdep->sigtramp_start
and tdep->sigtramp_end.
* i386obsd-nat.c: New file.
* config/i386/obsd.mh (NATDEPFILES): Add i386obsd-nat.o.
* i386-nat.c (child_post_startup_inferior): New function
calling i386_cleanup_dregs if
I386_USE_GENERIC_WATCHPOINTS is defined.
* config/i386/nm-i386.h: define CHILD_POST_STARTUP_INFERIOR
conditional to acknowledge that i386-nat.c has its
own child_post_startup_inferior function.
* i386-tdep.c (i386_do_pop_frame): Use I386_MAX_REGISTER_SIZE
instead of MAX_REGISTER_RAW_SIZE.
(i386_extract_return_value, i386_extract_struct_value_address):
Convert to use regcache.
(i386_gdbarch_init): Set max_register_raw_size and
max_register_virtual_size to I386_MAX_REGISTER_SIZE.
Set extract_return_value and extract_struct_value_address instead
of their deprecated variants.
* i386-tdep.c: Include "symfile.h".
(i386_frameless_signal_p): Consider a function to be frameless if
the pc points at the first instruction of the function.
(i386_frame_chain): Handle (generic) call dummies.
(i386_frame_saved_pc): Likewise.
(i386_frame_init_saved_regs): Remove code dealing with call
dummies on the stack.
(i386_push_dummy_frame): Removed.
(i386_call_dummy_words): Removed.
(i386_fix_call_dummy): Removed.
(i386_push_return_address): New function.
(i386_do_pop_frame): Renamed from i386_pop_frame. Add FRAME
parameter, and don't call get_current_frame.
(i386_pop_frame): New function.
(i386_gdbarch_init): Set use_generic_dummy_frames to 1, set
call_dummy_location to AT_ENTRY_POINT, set call_dummy_address to
entry_point_address, set call_dummy_breakpoint_offset to 0, set
call_dummy_length to 0, set call_dummy_words to NULL, set
sizeof_call_dummy_words to 0, set fix_call_dummy to
generic_fix_call_dummy, set pc_in_call_dummy to
pc_in_call_dummy_at_entry_point, set push_dummy_frame to
generic_push_dummy_frame, set push_return_address to
i386_push_return_address and set frame_chain_valid to
generic_file_frame_chain_valid.
* gdbserver/linux-x86-64-low.c (x86_64_regmap): Make it an array of
byte offsets instead of an array of indexes.
(x86_64_store_gregset, x86_64_store_fpregset): Parameter made const.
(SP_REGNUM, FP_REGNUM, FUNCTION_START_OFFSET, DECR_PC_AFTER_BREAK)
(BREAKPOINT_FROM_PC, INNER_THAN, SAVED_PC_AFTER_CALL)
(INIT_EXTRA_FRAME_INFO, FRAME_INIT_SAVED_REGS, INIT_FRAME_PC)
(FRAME_CHAIN, FRAME_CHAIN_VALID, FRAME_SAVED_PC)
(STORE_RETURN_VALUE, DEPRECATED_EXTRACT_RETURN_VALUE)
(STORE_STRUCT_RETURN, DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS)
(SKIP_PROLOGUE, FRAME_ARGS_SKIP, FRAME_ARGS_ADDRESS)
(FRAME_LOCALS_ADDRESS, FRAME_NUM_ARGS, POP_FRAME)
(PUSH_RETURN_ADDRESS, PUSH_DUMMY_FRAME, PUSH_ARGUMENTS): Remove.
* mcore-tdep.c (mcore_init_extra_frame_info): Add fromleaf
argument so the function fits the prototype in the architecture
vector.
(mcore_pop_frame): Remove argument so the function fits the
prototype. Use get_current_frame instead of the argument.
(mcore_push_arguments): Change type of struct_return so the
function can be used in the architecture vector.
(mcore_store_struct_return): Add.
(mcore_frame_init_saved_regs): Add.
(mcore_gdbarch_init): Add function calls to replace the macros
removed from tm-mcore.h
deprecated_grub_regcache_for_registers.
* values.c: Include "regcache.h".
(value_being_returned): Update. Use
deprecated_grub_regcache_for_registers to extract the register
buffer address.
* value.h (value_being_returned): Change ``retbuf'' parameter to a
``struct regcache''.
* Makefile.in (values.o): Add dependency on $(regcache_h).
* inferior.h (run_stack_dummy): Change type of second parameter to
a ``struct regcache''.
* valops.c (hand_function_call): Change type of retbuf to ``struct
regcache''. Allocate using regcache_xmalloc, clean using
make_cleanup_regcache_xfree.
* infcmd.c (run_stack_dummy): Update. Use
regcache_cpu_no_passthrough instead of memcpy to copy the buffer.
* regcache.c (do_regcache_xfree): New function.
(make_cleanup_regcache_xfree): New function.
* regcache.h (make_cleanup_regcache_xfree): Declare.
* varobj.c (struct varobj_root): Change frame from CORE_ADDR to
struct frame_id.
(varobj_create): Store frame_id for root.
(varobj_gen_name): Use xasprintf.
(varobj_update): Save and restore frame using get_frame_id() and
frame_find_by_id().
(create_child): Use xasprintf.
(new_root_variable): Initialize frame_id.
(c_name_of_child): Use xasprintf. Call find_frame_by_id().
(c_value_of_variable): Use xasprintf. Move mem_fileopen call
to prevent memory leak.
start of function, allocate using malloc, add a cleanup but before
the inf_status cleanup, cleanup the buffer. Rename local variable
old_chain to inf_status_cleanup.
* top.c (execute_command): Use cmd_func() and cmd_func_p().
* cli/cli-decode.c (cmd_func_p): New function.
(cmd_func): New function.
* command.h: Add cmd_func() and cmd_func_p().
* blockframe.c (frame_address_in_block): New function extracted
from get_frame_block().
(get_frame_block): Use frame_address_in_block().
(block_innermost_frame): Use frame_address_in_block() to match
the frame pc address against the block boundaries rather than
the frame pc directly. This prevents a failure when a frame pc
is actually a return-address pointing immediately after the end
of the given block.
used in architecture vector. The default is
m68k_local_breakpoint_from_pc.
(m68k_local_breakpoint_from_pc): Add.
(enum): Add register numbers from tm-m68k.h.
(m68k_gdbarch_init): Add breakpoint_from_pc to architecture vector.
* config/m68k/tm-m68k.h (GDB_MULTI_ARCH): Set to
GDB_MULTI_ARCH_PARTIAL.
(BPT_VECTOR, REGISTER_BYTES_FP, REGISTER_BYTES_NOFP)
(NUM_FREGS, SIG_PC_FP_OFFSET, SP_ARG0, REMOTE_BPT_VECTOR): Move to
m68k-tdep.c.
(BREAKPOINT, REMOTE_BREAKPOINT): Remove.
(A1_REGNUM, FP0_REGNUM, FPC_REGNUM, FPS_REGNUM, FPI_REGNUM): Move
to enum in m68k-tdep.c
loaded by the inferior, rather than the list of libraries loaded
by GDB itself. Otherwise, GDB ends up reading the symbols from
the wrong shared libraries...
(i386_frame_chain): Deal with frameless signals.
(i386_sigtramp_saved_sp): New function.
(i386_frame_saved_pc): Deal with frameless signals.
(i386_saved_pc_after_call): Make sure the correct value is
returned just after entry into a sigtramp.
* i386bsd-tdep.c (i386bsd_sc_sp_offset, i386nbsd_sc_sp_offset,
i386fbsd4_sc_sp_offset): New variables.
(i386bsd_init_abi, i386nbsd_init_abi, i386fbsd4_init_abi): Use
these variables to initialize tdep->sc_sp_offset. * i386bsd-nat.c
(_initialize_i386bsd_nat): Add sanity check for sc_sp_offset
similiar to what we already did for sc_pc_offset.
* i386-sol2-tdep.c (i386_sol2_init_abi): Initialize
tdep->sc_sp_offset.
(IN_SOLIB_CALL_TRAMPOLINE): Remove define.
* config/i386/tm-nbsdaout.h (IN_SOLIB_CALL_TRAMPOLINE): Remove
define.
* i386bsd-tdep.c: Include "arch-utils.h".
(i386bsd_aout_in_solib_call_trampoline): New function.
(i386bsd_init_abi): Set in_solib_call_trampoline to
i386bsd_aout_in_solib_call_trampoline.
(i386nbsdelf_init_abi, i386fbsd_init_abi): Set
in_solib_call_trampoline to generic_in_solib_call_trampoline.
``struct regcache''.
(struct dummy_frame): Replace field ``registers'' with regcache, a
struct regcache object.
(generic_find_dummy_frame): Update.
(generic_push_dummy_frame): Update. Use regcache_xfree,
regcache_xmalloc and regcache_cpy.
(generic_pop_dummy_frame): Update. Use regcache_cpy and
regcache_xfree.
(deprecated_generic_find_dummy_frame): Update.
(generic_read_register_dummy): Update. Use
regcache_read_as_address.
(generic_call_dummy_register_unwind): Update. Use regcache_read.
(generic_get_saved_register): Update. Use regcache_read.
(add_setshow_cmd_full): Declare.
* cli/cli-decode.c (add_setshow_cmd): No longer static. Now
returns void. Use add_setshow_cmd_full.
(add_setshow_cmd_full): New function.
(add_setshow_auto_boolean_cmd): Use add_setshow_cmd_full.
(add_setshow_boolean_cmd): Likewise.
(vax-tdep.o): Use $(vax_tdep_h).
* vax-tdep.c (vax_gdbarch_init): Use generic OS ABI framework.
(vax_dump_tdep): New function.
(_initialize_vax_tdep): Register vax_dump_tdep.
* vax-tdep.h: Include osabi.h.
(struct gdbarch_tdep): New.
structure. This way NUM_REGS does not have to be a constant.
* monitor.c (monitor_fetch_register): Added support for regname
function. The function is called if the array regnames is NULL.
(monitor_store_register): Same.
* cpu32bug-rom.c (cpu32bug_regname): Add function. Replaces regnames array.
(init_cpu32bug_cmds): set cpu32bug_cmds.regnames to NULL,
cpu32bug_cmds.regname to point to new function.
* abug-rom.c (abug_regname): Same as above.
(init_abug_cmds): Same.
* dbug-rom.c (dbug_regname): Same as above.
(init_dbug_cmds): Same.
* remote-est.c (est_regname): Same.
(init_est_cmds): Same.
* rom68k-rom.c (rom68k_regname): Same.
(init_rom68k_cmds): Same.
regcache'''.
(xmalloc_inferior_status): Delete function.
(free_inferior_status): Delete function.
(normal_stop): Use regcache_cpy.
(struct inferior_status): Change type of fields ``stop_registers''
and ``registers'' to ``struct regcache''.
(write_inferior_status_register): Use regcache_write.
(save_inferior_status): Instead of calling
xmalloc_inferior_status, allocate the inf_status buffer directly.
Use regcache_dup_no_passthrough and regcache_dup to save the
buffers.
(restore_inferior_status): Use regcache_xfree and regcache_cpy.
Replace the stop_registers regcache instead of overriding it. Use
regcache_xfree. Instead of calling free_inferior_status, xfree
the buffer directly.
(discard_inferior_status): Use regcache_xfree. Instead of calling
free_inferior_status, xfree the buffer directly.
(build_infrun): Use regcache_xmalloc.
(_initialize_infrun): Delete redundant call to build_infrun.
* Makefile.in (infcmd.o): Add $(regcache_h).
* infcmd.c: Include "regcache.h".
(run_stack_dummy): Use deprecated_grub_regcache_for_registers to
obtain the address of `stop_registers' register buffer.
(print_return_value): Ditto.
* inferior.h (struct regcache): Add opaque declaration.
(stop_registers): Change variable's declared type to ``struct
regcache''.
From Stan Shebs, Jim Blandy, Mark Salter, Kevin Buettner:
* config/frv/frv.mt: New file.
* config/frv/tm-frv.h: New file.
* configure.tgt: Support frv-*-*.
* Makefile.in (frv-tdep.o): New target.
* frv-tdep.c: New file.
* NEWS: Mention frv.
* parse.c (parse_fprintf): New function used to avoid calls to
fprintf in bison parser generated debug code.
* parser-defs.h: Declaration of new parse_fprintf function.
* ada-exp.y, c-exp.y, f-exp.y, jv-exp.y, m2-exp.y, p-exp.y:
Set YYDEBUG to 1 by default.
Set YYFPRINTF as parse_fprintf.
* event-top.c (command_handler): Don't use space_at_cmd_start
unless there is sbrk() on the host. Assign time and space data
to union fields of the appropriate length.
* mips-tdep.c (enum mips_abi): Explicitly start at 0. Add
MIPS_ABI_LAST.
(mips_abi_string, mips_abi_strings): New.
(struct gdbarch_tdep): Remove mips_abi_string, add found_abi.
(mips_gdbarch_init): Set tdep->found_abi. Don't set
tdep->mips_abi_string. Honor mips_abi_string. Default to
O32 if no ABI is found.
(mips_dump_tdep): Use mips_abi_strings.
(mips_abi_update): New function.
(_initialize_mips_tdep): Initialize mips_abi_string. Add
``set mips abi'' and ``show mips abi''. Check the size of
mips_abi_strings.
current frame using only the first stack size adjustment. All
subsequent size adjustments are not considered to be part of
the "static" part of the current frame.
Compute the address of the saved registers relative to the
Frame Pointer ($fp) instead of the Stack Pointer if $fp is
in use in this frame.
* valops.c (value_ind): Use value_at_lazy() when dereferencing
type int expressions. Thanks to Jim Blandy <jimb@redhat.com> for
suggesting this solution.
when a condition is added to an existing breakpoint.
(commands_command): Likewise for commands.
(set_ignore_count): Likewise for ignore counts.
If no tty, do not simply return, still need to send event
notification.
(ignore_command): Only print a newline if the command came
from a tty.
Don't call breakpoints_changed, since this is now properly
handled by set_ignore_count.
(i386lynx_saved_pc_after_call): Remove prototype.
* i386ly-tdep.c: Include "i386-tdep.h".
(i386lynx_saved_pc_after_call): Make static. Use
read_memory_nobpt instead of read_memory. Use
read_memory_unsigned_integer instead of read_memory_integer.
(i386lynx_init_abi): New function.
(i386lynx_coff_osabi_sniffer): New function.
(_initialize_i386bsd_tdep): New function.
BREAKPOINT, DECR_PC_AFTER_BREAK): Removed.
* i386-tdep.c (i386_skip_prologue): Adjust function signature to
fit into multi-arch framework.
(i386_breakpoint_from_pc): New function.
(i386_gdbarch_init): Adjust for removal of the macros mentioned
above.
comments.
(fill_gregset, supply_gregset, supply_fpregset, fill_fpregset):
Remove prototypes.
(supply_gregset, fill_gregset): Remove use of register keyword and
remove declaration for regmap. Use I386_NUM_GREGS instead of
NUM_REGS and NUM_FREGS.
(FPREGSET_FSAVE_OFFSET): Remove.
(supply_fpregset, fill_fpregset): Use FPO_REGNUM instead of
NUM_FREGS to determine whether the floating-point registers are
available.
* i386-tdep.c (i386_register_offset, i386_register_size): Use
I386_SSE_NUM_REGS instead of MAX_NUM_REGS for the number of
elements in these arrays.
(_initialize_i386_tdep): Use I386_SSE_NUM_REGS instead of
MAX_NUM_REGS.
* gdbtypes.h (TYPE_FLAG_VARARGS): Update comment.
(struct main_type): Remove arg_types member. Update comments for
struct field.
(TYPE_ARG_TYPES): Remove.
(TYPE_FN_FIELD_ARGS): Update.
(smash_to_method_type): Update prototype.
* c-typeprint.c (cp_type_print_method_args): Take method type
instead of argument list. Use new argument layout. Simplify.
(c_type_print_args): Use new argument layout. Simplify.
(c_type_print_base): Update call to cp_type_print_method_args.
* dwarf2read.c (dwarf2_add_member_fn): Remove unneeded type
argument; use die->type instead. Update call to
smash_to_method_type.
(read_structure_scope): Update call to dwarf2_add_member_fn.
* gdbtypes.c (allocate_stub_method): Update comment.
(smash_to_method_type): Take new NARGS and VARARGS arguments.
Use new argument layout.
(check_stub_method): Use new argument layout. Don't count
void as an argument.
(print_arg_types): Update comments. Use new argument layout.
(recursive_dump_type): Don't print arg_types member.
* hpread.c (hpread_read_struct_type): Use new argument layout.
(fixup_class_method_type): Likewise.
(hpread_type_lookup): Likewise.
* stabsread.c (read_type): Update calls to read_args and
smash_to_method_type.
(read_args): Use new argument layout. Simplify.
* valops.c (typecmp): Use new argument layout. Update parameters
and comments. Simplify.
(hand_function_call): Use new argument layout.
(search_struct_method): Update call to typecmp.
(find_overload_match): Use new argument layout.
* mips-tdep.c (PROC_SYMBOL): Add warning comment.
(struct mips_objfile_private, compare_pdr_entries): New.
(non_heuristic_proc_desc): Read the ".pdr" section if it
is present.
information about preprocessor macros.
* gdb/testsuite/lib/gdb.exp (get_debug_format): Tolerate message
saying whether preprocessor macro information is present.
* gdb/doc/gdb.texinfo (Symbols): Update documentation for `info
source' command.
* gdbserver/thread-db.c: New file.
* gdbserver/proc-service.c: New file.
* gdbserver/acinclude.m4: New file.
* gdbserver/Makefile.in: Add GDBSERVER_LIBS, gdb_proc_service_h,
proc-service.o, and thread-db.o.
(linux-low.o): Add USE_THREAD_DB.
* gdbserver/acconfig.h: Add HAVE_PRGREGSET_T, HAVE_PRFPREGSET_T,
HAVE_LWPID_T, HAVE_PSADDR_T, and PRFPREGSET_T_BROKEN.
* gdbserver/aclocal.m4: Regenerated.
* gdbserver/config.in: Regenerated.
* gdbserver/configure: Regenerated.
* gdbserver/configure.in: Check for proc_service.h, sys/procfs.h,
thread_db.h, and linux/elf.h headrs.
Check for lwpid_t, psaddr_t, prgregset_t, prfpregset_t, and
PRFPREGSET_T_BROKEN. Introduce srv_thread_depfiles and USE_THREAD_DB.
Check for -lthread_db and thread support.
* gdbserver/configure.srv: Enable thread_db support for ARM, i386, MIPS,
PowerPC, and SuperH.
* gdbserver/i387-fp.c: Constify arguments.
* gdbserver/i387-fp.h: Likewise.
* gdbserver/inferiors.c: (struct thread_info): Renamed from
`struct inferior_info'. Remove PID member. Use generic inferior
list header. All uses updated.
(inferiors, signal_pid): Removed.
(all_threads): New variable.
(get_thread): Define.
(add_inferior_to_list): New function.
(for_each_inferior): New function.
(change_inferior_id): New function.
(add_inferior): Removed.
(remove_inferior): New function.
(add_thread): New function.
(free_one_thread): New function.
(remove_thread): New function.
(clear_inferiors): Use for_each_inferior and free_one_thread.
(find_inferior): New function.
(find_inferior_id): New function.
(inferior_target_data): Update argument type.
(set_inferior_target_data): Likewise.
(inferior_regcache_data): Likewise.
(set_inferior_regcache_data): Likewise.
* gdbserver/linux-low.c (linux_bp_reinsert): Remove.
(all_processes, stopping_threads, using_thrads)
(struct pending_signals, debug_threads, pid_of): New.
(inferior_pid): Replace with macro.
(struct inferior_linux_data): Remove.
(get_stop_pc, add_process): New functions.
(linux_create_inferior): Restore SIGRTMIN+1 before calling exec.
Use add_process and add_thread.
(linux_attach_lwp): New function, based on old linux_attach. Use
add_process and add_thread. Set stop_expected for new threads.
(linux_attach): New function.
(linux_kill_one_process): New function.
(linux_kill): Kill all LWPs.
(linux_thread_alive): Use find_inferior_id.
(check_removed_breakpoints, status_pending_p): New functions.
(linux_wait_for_process): Renamed from linux_wait_for_one_inferior.
Update. Use WNOHANG. Wait for cloned processes also. Update process
struct for the found process.
(linux_wait_for_event): New function.
(linux_wait): Use it. Support LWPs.
(send_sigstop, wait_for_sigstop, stop_all_processes)
(linux_resume_one_process, linux_continue_one_process): New functions.
(linux_resume): Support LWPs.
(REGISTER_RAW_SIZE): Remove.
(fetch_register): Use register_size instead. Call supply_register.
(usr_store_inferior_registers): Likewise. Call collect_register.
Fix recursive case.
(regsets_fetch_inferior_registers): Improve error message.
(regsets_store_inferior_registers): Add debugging.
(linux_look_up_symbols): Call thread_db_init if USE_THREAD_DB.
(unstopped_p, linux_signal_pid): New functions.
(linux_target_ops): Add linux_signal_pid.
(linux_init_signals): New function.
(initialize_low): Call it. Initialize using_threads.
* gdbserver/regcache.c (inferior_regcache_data): Add valid
flag.
(get_regcache): Fetch registers lazily. Add fetch argument
and update all callers.
(regcache_invalidate_one, regcache_invalidate): New
functions.
(new_register_cache): Renamed from create_register_cache.
Return the new regcache.
(free_register_cache): Change argument to a void *.
(registers_to_string, registers_from_string): Call get_regcache
with fetch flag set.
(register_data): Make static. Pass fetch flag to get_regcache.
(supply_register): Call get_regcache with fetch flag clear.
(collect_register): Call get_regcache with fetch flag set.
(collect_register_as_string): New function.
* gdbserver/regcache.h: Update.
* gdbserver/remote-utils.c (putpkt): Flush after debug output and use
stderr.
Handle input interrupts while waiting for an ACK.
(input_interrupt): Use signal_pid method.
(getpkt): Flush after debug output and use stderr.
(outreg): Use collect_register_as_string.
(new_thread_notify, dead_thread_notify): New functions.
(prepare_resume_reply): Check using_threads. Set thread_from_wait
and general_thread.
(look_up_one_symbol): Flush after debug output.
* gdbserver/server.c (step_thread, server_waiting): New variables.
(start_inferior): Don't use signal_pid. Update call to mywait.
(attach_inferior): Update call to mywait.
(handle_query): Handle qfThreadInfo and qsThreadInfo.
(main): Don't fetch/store registers explicitly. Use
set_desired_inferior. Support proposed ``Hs'' packet. Update
calls to mywait.
* gdbserver/server.h: Update.
(struct inferior_list, struct_inferior_list_entry): New.
* gdbserver/target.c (set_desired_inferior): New.
(write_inferior_memory): Constify.
(mywait): New function.
* gdbserver/target.h: Update.
(struct target_ops): New signal_pid method.
(mywait): Removed macro, added prototype.
* gdbserver/linux-low.h (regset_func): Removed.
(regset_fill_func, regset_store_func): New.
(enum regset_type): New.
(struct regset_info): Add type field. Use new operation types.
(struct linux_target_ops): stop_pc renamed to get_pc.
Add decr_pc_after_break and breakpoint_at.
(get_process, get_thread_proess, get_process_thread)
(strut process_info, all_processes, linux_attach_lwp)
(thread_db_init): New.
* gdbserver/linux-arm-low.c (arm_get_pc, arm_set_pc,
arm_breakpoint, arm_breakpoint_len, arm_breakpoint_at): New.
(the_low_target): Add new members.
* gdbserver/linux-i386-low.c (i386_store_gregset, i386_store_fpregset)
(i386_store_fpxregset): Constify.
(target_regsets): Add new kind identifier.
(i386_get_pc): Renamed from i386_stop_pc. Simplify.
(i386_set_pc): Add debugging.
(i386_breakpoint_at): New function.
(the_low_target): Add new members.
* gdbserver/linux-mips-low.c (mips_get_pc, mips_set_pc)
(mips_breakpoint, mips_breakpoint_len, mips_reinsert_addr)
(mips_breakpoint_at): New.
(the_low_target): Add new members.
* gdbserver/linux-ppc-low.c (ppc_get_pc, ppc_set_pc)
(ppc_breakpoint, ppc_breakpoint_len, ppc_breakpoint_at): New.
(the_low_target): Add new members.
* gdbserver/linux-sh-low.c (sh_get_pc, sh_set_pc)
(sh_breakpoint, sh_breakpoint_len, sh_breakpoint_at): New.
(the_low_target): Add new members.
* gdbserver/linux-x86-64-low.c (target_regsets): Add new kind
identifier.
(v850_use_struct_convention): Match current gcc implementation
as close as possible.
(v850_push_arguments): Fix stack_offset handling. Don't write
struct_addr into register. This is done by v850_store_struct_return.
(v850_extract_return_value): Care for structs.
(v850_store_return_value): Ditto.
(v850_store_struct_return): Actually write address.
selected_frame_address and selected_level with field
selected_frame_id.
(save_inferior_status): Update. Use get_frame_id.
(struct restore_selected_frame_args): Delete.
(restore_selected_frame): Update. Use frame_find_by_id.
(restore_inferior_status): Update.
* breakpoint.h (struct breakpoint): Change type of
watchpoint_frame to frame_id.
* breakpoint.c (insert_breakpoints): Use frame_find_by_id. Remove
call to get_current_frame.
(do_enable_breakpoint): Use frame_find_by_id. Remove call to
get_current_frame.
(watchpoint_check): Use frame_find_by_id.
* frame.h (record_selected_frame): Delete declaration.
* stack.c (record_selected_frame): Delete function.
* frame.h (struct frame_id): Define.
(get_frame_id): Declare.
(frame_find_by_id): Declare.
* frame.c (frame_find_by_id): New function.
(get_frame_id): New function.
* gdb.base/overlays.exp: Record addresses of overlay
functions in TCL variables rather than in GDB variables,
to avoid having GDB convert them to pointers (with loss
of information).
* d10v-tdep.c (d10v_store_return_value): Char return values
must be shifted over by one byte in R0.
(d10v_extract_return_value): Delete extra braces, re-indent.
* d10v-tdep.c (d10v_read_sp, d10v_read_fp): Add prototype.
(d10v_register_virtual_type): Make $fp and $sp be pointer to data.
(d10v_integer_to_address): Rewrite.
(d10v_frame_init_saved_regs): When reading fp and sp registers use
the d10v specific functions which take care of converting to the
correct space.
* ada-exp.y: New file
* ada-lang.c: New file
* ada-lang.h: New file
* ada-lex.c: New file
* ada-lex.l: New file
* ada-tasks.c: New file
* ada-typeprint.c: New file
* ada-valprint.c: New file
saved_regs. Mention when the SP is on the stack or in a register.
* frame.h (frame_register_unwind_ftype): Define. Document.
(struct frame_info): Add field register_unwind and
register_unwind_cache.
(frame_register_unwind): Declare.
(generic_unwind_get_saved_register): Declare.
* frame.c (frame_register_unwind): New function.
(generic_unwind_get_saved_register): New function.
* blockframe.c (generic_call_dummy_register_unwind): New function.
(frame_saved_regs_register_unwind): New function.
(set_unwind_by_pc): New function.
(create_new_frame): New function.
(get_prev_frame): New function.
* sparc-tdep.c: Include osabi.h.
(gdbarch_tdep): Add osabi member.
(_initialize_sparc_tdep): Use gdbarch_register.
(sparc_gdbarch_init): Use generic OS ABI framework.
(sparc_dump_tdep): New function.
* Makefile.in (sim_regno_h): Define.
(d10v-tdep.o, remote-sim.o): Add dependency on $(sim_regno_h).
* remote-sim.c: Include "sim-regno.h" and "gdb_assert.h".
(legacy_register_sim_regno): New function.
(one2one_register_sim_regno): New function.
(gdbsim_fetch_register): Rewrite.
(gdbsim_store_register): Only store a register when
REGISTER_SIM_REGNO is valid.
* d10v-tdep.c: Include "sim-regno.h".
(d10v_ts2_register_sim_regno): Add legacy_regiter_sim_regno check.
(d10v_ts3_register_sim_regno): Ditto.
* gdbarch.sh: Include "sim-regno.h".
(REGISTER_SIM_REGNO): Set default to legacy_register_sim_regno.
* gdbarch.h, gdbarch.c: Regenerate.
* arch-utils.h (default_register_sim_regno): Delete declaration.
* arch-utils.c (default_register_sim_regno): Delete function.
* i386-tdep.c (i386_register_virtual_type): Return
builtin_type_vec128i for SSE registers.
* gdbtypes.h (builtin_type_vec128i): Declare.
* gdbtypes.c (build_builtin_type_vec128i): New function.
(builtin_type_v2_double, builtin_type_v4_int64): New types.
(builtin_type_vec128i): New type for SSE2 128-bit registers.
(build_gdbtypes): Initialize new builtin vector types.
(_initialize_gdbtypes): Register new vector types with gdbarch.
since it has been multi-arch'd.
* NEWS: Note that ns32k-*-* is now partial multi-arch.
Move Alpha and VAX multi-arch news entries to same section
as other multi-arch news.
target.s, arch-utils.h, ns32k-tdep.h. Make many functions
static. Rename some register numbers to put them in ns32k-tdep
private namespace.
(ns32k_get_saved_register, ns32k_gdbarch_init_32082,
ns32k_gdbarch_init_32382, ns32k_gdbarch_init, ns32k_dump_tdep): New
functions.
(_initialize_ns32k_tdep): Use gdbarch_register.
* ns32k-tdep.h: New file.
* ns32knbsd-tdep.c: New file.
* config/ns32k/nbsdaout.mt (TDEPFILES): Add ns32knbsd-tdep.o.
* config/ns32k/tm-nbsd.h: Include "ns32k/tm-ns32k.h".
(IN_SOLIB_CALL_TRAMPOLINE, REGISTER_NAME, NUM_REGS,
REGISTER_BYTES, REGISTER_BYTE): Remove.
* config/ns32k/tm-ns32k.h: New file.
* config/ns32k/tm-umax.h: Remove.
ns32k_store_struct_return, ns32k_extract_return_value,
ns32k_store_return_value, ns32k_extract_struct_value_address): New
functions.
* config/ns32k/tm-umax.h (SAVED_PC_AFTER_CALL): Define as
ns32k_saved_pc_after_call.
(STORE_STRUCT_RETURN): Define as ns32k_store_struct_return.
(EXTRACT_RETURN_VALUE): Define as ns32k_extract_return_value.
(STORE_RETURN_VALUE): Define as ns32k_store_return_value.
(EXTRACT_STRUCT_VALUE_ADDRESS): Define as
ns32k_extract_struct_value_address.