* mips-tdep.c (MSYMBOL_IS_SPECIAL, MSYMBOL_SIZE): These are only
used locally, so move them from the target machine header to here.
(mips_set_processor_type, mips_register_name, mips32_next_pc,
mips16_next_pc, cached_proc_desc, mips_set_processor_type):
Make static.
* config/mips/tm-mips.h (MSYMBOL_IS_SPECIAL, MSYMBOL_SIZE): Delete.
* ppc-tdep.h (struct gdbarch_tdep): Add ev registers.
* rs6000-tdep.c (rs6000_register_virtual_type): Return 64 bit
vector type for ev registers.
(e500_pseudo_register_read): New function.
(e500_pseudo_register_write): New function.
(e500_dwarf2_reg_to_regnum): New function.
(PPC_UISA_NOFP_SPRS): New macro.
(PPC_EV_REGS): New macro.
(PPC_GPRS_PSEUDO_REGS): New macro.
(registers_e500): New register set for e500.
(variants): Add e500 variant.
(rs6000_gdbarch_init): Move setting of pc, sp, fp regnums to
before setting architectural dependent variations. Initialize ev
registers numbers. Add case for e500 architecture. Set the
number of pseudo registers.
* config/mips/tm-mips.h (STORE_STRUCT_RETURN): Delete.
(EXTRACT_STRUCT_VALUE_ADDRESS): Delete.
* mips-tdep.c (mips_store_struct_return): New function.
(mips_extract_struct_value_address): New function.
(mips_gdbarch_init): Set store_struct_return and
extract_struct_value_address.
* dwarf2read.c (dwarf2_build_psymtabs): Check that
dwarf_line_offset is nonzero before creating dwarf_line_buffer.
(read_file_scope): Check that line_header is nonzero before
decoding macro information.
* infcmd.c (do_registers_info): Print vector registers in hex
format only.
(print_vector_info): Check that printing registers
makes sense.
(print_float_info): Ditto.
* mips-tdep.c (mips_gdbarch_init): Update.
(mips_o32_extract_return_value): Rewrite.
(mips_o32_store_return_value): Rewrite.
(mips_o32_xfer_return_value): New function.
(mips_xfer_register): Tweak debug print message. Allow for
buf_offset when dumping the value transfered.
* rs6000-tdep.c (struct reg): Add field to indicate a pseudo
register.
(P): New macro to define a register as a pseudo register.
(R, R4, R8, R16, FR32, R64, R0): Updated.
(struct variant): Add new fields for number of pseudo registers
and number of total registers.
(tot_num_registers): New macro replacing....
(num_registers): ...deleted macro.
(num_registers): New function.
(num_pseudo_registers): New function.
(variants): Update all variants to intialize new fields correctly.
Postpone initialization of number of pseudo regs and real regs.
(init_variants): New function.
(rs6000_gdbarch_init): Initialize variants. Update calculation of
registers offsets.
* valops.c (search_struct_field): Change error message to treat
return value of 0 from value_static_field as meaning that field is
optimized out.
(value_struct_elt_for_reference): Ditto.
* values.c (value_static_field): Treat an unresolved location the
same as a nonexistent symbol. Fix PR gdb/635.
* mips-tdep.c (mips_xfer_register): New function.
(mips_n32n64_extract_return_value): Rewrite.
(mips_gdbarch_init): For N32 and N64, set extract_return_value
instead of deprecated_extract_return_value.
conditionally.
(JB_PC, JB_ELEMENT_SIZE): Rename to MIPS_LINUX_JB_PC and
MIPS_LINUX_JB_ELEMENT_SIZE.
* mips-linux-tdep.c (supply_gregset, fill_gregset): Use alloca
for MAX_REGISTER_RAW_SIZE arrays.
(mips_linux_get_longjmp_target): Use MIPS_LINUX_JB_PC and
MIPS_LINUX_JB_ELEMENT_SIZE.
(TM_FILE): Set to tm-i386.h.
* config/i386/i386v.mt (TM_FILE): Set to tm-i386.h.
* config/i386/tm-i386v.h: Remove file.
* config/i386/tm-ptx.h [!SEQUENT_PTX4]: Include "i386/tm-i386.h"
instead of "i386/tm-i386v.h".
(START_INFERIOR_TRAPS_EXPECTED): Remove define.
* config/i386/tm-symmetry: Include "i386/tm-i386.h" instead of
"i386/tm-i386v.h".
(START_INFERIOR_TRAPS_EXPECTED): Remove define.
* config/i386/tm-vxworks.h: Include "i386/tm-i386.h" instead of
"i386/tm-i386.h".
multiple-inclusion.
(i386_register_u_addr): Remove prototype.
(register_u_addr): New prototype.
(REGISTER_U_ADDR): Redefine accordingly.
* i386v-nat.c: Improve several comments.
(i386_register_u_addr): Change signature and rename to
register_u_addr. Use FP_REGNUM_P. Rewrite slightly to get rid of
ubase variable.
* ada-lang.h: run through gdb_indent.sh
* ada-tasks.c: run through gdb_indent.sh
* ada-typeprint.c: run through gdb_indent.sh
* ada-valprint.c: run through gdb_indent.sh
* config/ia64/ia64.mt: New file.
* config/alpha/alpha.mt: New file.
* MAINTAINERS: Change the alpha target to alpha-elf and IA-64 to
ia64-linux-gnu. Mention that ia64-elf is broken.
* configure.tgt: Add alpha*-*-* and ia64*-*-* patterns.
* config/ia64/ia64.mt: New file.
* config/alpha/alpha.mt: New file.
* MAINTAINERS: Change the alpha target to alpha-elf and IA-64 to
ia64-linux-gnu. Mention that ia64-elf is broken.
* configure.tgt: Add alpha*-*-* and ia64*-*-* patterns.
procfs appears to be broken when debugging on multi-processor
machines. So enable software single stepping in order to avoid
using the procfs interface to do next/step operations, using
internal breakpoints instead.
* infrun.c (handle_inferior_event): Readjust the stop_pc by
DECR_PC_AFTER_BREAK when hitting a single step breakpoint, to
make this pc address equal to the value it would have if the
system stepping capability was used. Also set a new flag used
to ensure that we don't readjust the PC one more time later.
* breakpoint.c (bpstat_stop_status): Do not adjust the PC
address by DECR_PC_AFTER_BREAK when software single step is
in use for this architecture, as this has already been taken
care of in handle_inferior_event().
* Makefile.in (copying.o): Separate out compile rule.
(hpux-thread.o, procfs.o, signals.o): Ditto.
(v850ice.o, z8k-tdep.o): Ditto.
(tui-file.o): Move to TUI section.
(xdr_ptrace.o, xdr_rdb.o, xdr_ld.o): Move to separate section.
(nindy.o, Onindy.o, ttyflush.o): Move to separate section.
signal, check whether we hit a breakpoint before checking for a
single step breakpoint. Otherwise, GDB fails to notice that a
breakpoint has been hit when stepping onto a breakpoint.
* config/mips/tm-mips.h (FUNCTION_START_OFFSET, IN_SIGTRAMP,
REGISTER_VIRTUAL_SIZE): Delete.
(REGISTER_CONVERT_FROM_TYPE, REGISTER_CONVERT_TO_TYPE): Convert
from macros to functions.
* mips-tdep.c (mips_register_convert_from_type,
mips_register_convert_to_type): New functions.
(mips_gdbarch_init): Set up function_start_offset,
register_virtual_size, pc_in_sigtramp.
* config/mips/tm-mips.h (REGISTER_CONVERT_TO_VIRTUAL,
REGISTER_CONVERT_TO_RAW, REGISTER_CONVERTIBLE,
MAX_REGISTER_RAW_SIZE, MAX_REGISTER_VIRTUAL_SIZE): Delete.
* mips-tdep.c (mips_gdbarch_init): Set the above in the gdbarch.
(mips_register_convertible, mips_register_convert_to_virtual,
mips_register_convert_to_raw): Make static.
* config/i386/nm-i386gnu.h: New file.
(THREAD_STATE_FLAVOR, THREAD_STATE_SIZE,
THREAD_STATE_SET_TRACED, THREAD_STATE_CLEAR_STATE, ATTACH_DETACH):
Moved here from ...
* config/i386/tm-i386gnu.h: ... here. Removed.
* config/i386/xm-i386gnu.h: Removed.
* config/i386/i386gnu.mh (XM_FILE): Set to xm-i386.h.
(NAT_FILE): Set to nm-i386gnu.h.
* config/i386/i386gnu.mt (TDEPFILES): Add i386gnu-tdep.o.
* i386-tdep.c: New file.
* Makefile.in (ALLDEPFILES): Add i386gnu-nat.c and i386gnu-tdep.c.
(i386gnu-tdep.o): Specify dependencies.
"i386/tm-i386.h", "i386/tm-i386v.h" and "config/tm-sysv.h".
Adjust a few comments to reflect reality a bit closer.
(KERNEL_U_SIZE, TARGET_HAS_HARDWARE_WATCHPOINTS,
TARGET_CAN_USE_HARDWARE_WATCHPOINT, HAVE_CONTINUEABLE_WATCHPOINT,
HAVE_STEPPABLE_WATCHPOINT, STOPPED_BY_WATCHPOINT,
target_insert_watchpoint, target_remove_watchpoint):
Move defines to ...
* config/i386/nm-i386sco5.h: ... here.
(kernel_u_size): Add prototype. Improve a few comments and add
protection against multiple inclusion.
* i387-tdep.c (print_i387_value, print_i387_ext,
print_i387_status_word, print_i387_control_word): Add `struct
ui_file *' argument and use it for output.
(i387_print_float_info): Renamed from i387_float_info. Add
`struct gdbarch *' and `struct ui_file *' arguments and use the
latter for output.
* i386-tdep.c: Include "i387-tdep.h".
(i386_gdbarch_init): Set print_float_info.
* config/i386/tm-i386.h (i387_float_info): Remove prototype.
(FLOAT_INFO): Remove define.
* mips-tdep.c (mips_push_arguments): Rename to
mips_eabi_push_arguments, and tune for EABI.
(MIPS_REGS_HAVE_HOME_P): Delete.
(struct gdbarch_tdep): Remove mips_regs_have_home_p field.
(mips_gdbarch_init): Set gdbarch push_arguments for eabi.
Delete references to mips_regs_have_home_p.
* mips-tdep.c (mips_o32o64_push_arguments): New function,
cloned from mips_push_arguments, tuned for o32/o64 ABI.
(mips_gdbarch_init): Set gdbarch_push_arguments to new func.
* regcache.c (init_regcache_descr): Overallocate the
raw_register_valid_p array including space for NUM_PSEUDO_REGS.
(registers_changed): Replace NUM_REGS+NUM_PSEUDO_REGS with
num_raw_registers.
(set_register_cached): Add range checking assertions. Use
current_regcache.
(M68HC12_HARD_PC_REGNUM): Define specific PC for 68HC12 (pseudo reg).
(m68hc11_pseudo_register_read): Compute the 68HC12 PC using the
real PC and the page number (if it's within the memory bank window).
(m68hc11_pseudo_register_write): Likewise when saving.
(m68hc11_register_name): Name the virtual pc 'pc' and the real one ppc.
(m68hc11_register_virtual_type): Return uint32 for virtual pc.
(m68hc11_register_raw_size): And use 32-bit for it.
(m68hc11_gdbarch_init): Use 32-bit address for 68HC12 if the
16K memory bank is used by the prog; also use the virtual pc.
(m68hc11_gdbarch_init): Install it in gdbarch.
(MSYMBOL_SET_RTC, MSYMBOL_SET_RTI): New to set symbol specific flags.
(MSYMBOL_IS_RTC, MSYMBOL_IS_RTI): New to test these flags.
(MSYMBOL_SIZE): New for documentation.
(insn_return_kind): Enum to specify how a function returns.
(frame_extra_info): Cleanup and record the return mode.
(gdbarch_tdep, USE_PAGE_REGISTER): New to control the use of page
register in address computation.
(m68hc11_get_return_insn): New to obtain the return instruction used
by the function.
(m68hc11_frame_init_saved_regs): Take into account the return
instruction used by the function for far and interrupt functions.
(m68hc11_init_extra_frame_info): Take into account page register.
(m68hc11_frame_args_address): Adjust according to the return mode.
(show_regs): Print page register only when it's used.
(M68HC11_LAST_HARD_REG, m68hc11_register_names): Update.
(m68hc11_register_virtual_type): Return a 8-bit type for 8-bit
registers.
(m68hc11_register_raw_size): Likewise.
* i386-tdep.c (i386_register_name): Handle mmx registers.
(mmx_regnum_p): New function.
(i386_mmx_names): New array.
(mmx_num_regs): New variable.
(i386_pseudo_register_read): New function.
(i386_pseudo_register_write): New function.
(mmx_regnum_to_fp_regnum): New function. Code from Fernando Nasser.
* regcache.c (regcache_raw_read_unsigned): New function.
(regcache_raw_read_signed): New function.
* regcache.h (regcache_raw_read_unsigned): Declare.
(regcache_raw_read_signed): Declare.
(to_fixed_variant_branch_type) (find_line_in_linetable): Fix
prototype names so that grep ^func works properly.
* ada-lang.c (ada_array_element_type)
(ada_lookup_partial_symbol): Fix typos in parameter list.
* ada-valprint.c (val_print_packed_array_elements) (ada_val_print_1):
Fix prototype names so that grep ^func works properly.
Elena Zannoni <ezannoni@redhat.com>
Martin M. Hunt <hunt@redhat.com>
* gdbtypes.c (build_builtin_type_vec128): Set the vector bit.
(build_builtin_type_vec128i): Set the vector bit.
* gdbtypes.h (builtin_type_vec64, builtin_type_vec64i): Declare.
* gdbtypes.c (builtin_type_vec64, builtin_type_vec64i): Define.
(build_builtin_type_vec64): New function.
(build_builtin_type_vec64i): New function.
(build_gdbtypes): Initialize builtin_type_vec64 and
builtin_type_vec64i.
* mips-tdep.c (ROUND_DOWN, ROUND_UP): Move to global scope.
(mips_push_arguments): Correct some comments. Use paddr_nz
for printing addresses in debug output. Replace static
allocation using MAX_REGISTER_RAW_SIZE with alloca.
(mips_n32n64_push_arguments): New function, cloned from
mips_push_arguments and tuned for the n32/n64 ABI.
(mips_push_register): Buffer needs dynamic allocation.
(mips_print_register): Ditto.
(do_gp_register_row): Ditto.
(mips_store_return_value): Ditto.
(mips_gdbarch_init): Set gdbarch_push_arguments per ABI.
T-packets; the 'a' is not taken as a register number.
(remote_check_watch_resources, remote_stopped_by_watchpoint)
(remote_stopped_data_address): New functions; add to target
vector.
(remote_insert_hw_breakpoint, remote_remove_hw_breakpoint): Change
prototypes to match other implementations of this
function. replace integer argument with pointer -- the length
field in the Z-packet is the length of what is pointed to or 1 if
pointer is null. Add to target vector.
(remote_insert_watchpoint, remote_remove_watchpoint): Add to
target vector.
From Mark Salter:
* remote.c (remote_wait): Add support to extract optional
watchpoint information from T-packet. Ignore unrecognized
optional info in T-packet.
(remote_async_wait): Ditto.
doc:
From Mark Salter:
* gdb.texinfo (Protocol): Document T packet extension to
allow watchpoint address reporting.
* mips-tdep.c (mips_find_saved_regs): Adjust stack according
to MIPS_SAVED_REGSIZE, not GDB_TARGET_IS_MIPS64. Enhance comment.
(mips_gdbarch_init): Set N32 target to be mips64.
* configure.tgt: Make arc-*-* obsolete.
* NEWS: Mention that arc-*-* has been identifed as obsolete.
* MAINTAINERS: Make arc-elf obsolete.
* arc-tdep.c: Make file obsolete.
* config/arc/arc.mt: Ditto.
* config/arc/tm-arc.h: Ditto.
to_insert_watchpoint, to_remove_watchpoint,
to_stopped_by_watchpoint, to_stopped_data_address,
to_region_size_ok_for_hw_watchpoint, to_can_use_hw_breakpoint to
target vecctor. Define their corresponding macros so they call
them.
* target.c: Add default and debug versions of for
to_insert_hw_breakpoint, to_remove_hw_breakpoint,
to_insert_watchpoint, to_remove_watchpoint,
to_stopped_by_watchpoint, to_stopped_data_address,
to_region_size_ok_for_hw_watchpoint, to_can_use_hw_breakpoint.
* gdbinit.in: Move the `dir' commands that add GDB's own source
directory to the search path to the end, so that the `gdb' source
directory will be searched first.
* regcache.c (struct regcache_descr): Rename nr_registers to
nr_cooked_registers. Revise comments describing the structure
member fields.
(init_regcache_descr): Update.
(init_legacy_regcache_descr): Update.
(read_register_gen, write_register_gen): When a cooked register in
the raw register range, directly access the value from the raw
register cache.
(fetch_registers, store_register): Don't access registers[]
directly. Instead, use supply_register() or
regcache_collect() as appropriate.
(find_toc_address): Format hex address with local_hex_string().
* findvar.c (extract_unsigned_integer): Make `addr' parameter
constant. Same for local pointer variables.
(extract_signed_integer): Ditto.
* defs.h (extract_unsigned_integer): Update.
(extract_signed_integer): Update.
* utils.c (prompt_for_continue): Use gdb_readline_wrapper.
* tracepoint.c (read_actions): Use gdb_readline_wrapper.
* top.c (gdb_readline_wrapper): New function.
(command_line_input): Use it.
(base_ops): Rename to base_target.
(ops_attach): Rename to aix_thread_attach.
(ops_detach): Rename to aix_thread_detach.
(ops_resume): Rename to aix_thread_detach.
(ops_wait): Rename to aix_thread_wait.
(ops_kill): Rename to aix_thread_kill.
(init_ops): Rename to init_aix_thread_ops.
(ops_fetch_register): Rename to aix_thread_fetch_register.
(ops_store_register): Rename to aix_thread_store_register.
(ops_mourn_inferior): Rename to aix_thread_mourn_inferior.
(ops_thread_alive): Rename to aix_thread_thread_alive.
(ops_extra_thread_info: Rename to aix_thread_extra_thread_info.
(ops_pid_to_str): Rename to aix_thread_pid_to_str.
(ops_xfer_memory): Rename to aix_thread_xfer_memory.
(fetch_regs_lib): Rename to fetch_regs_user_thread.
(fetch_regs_kern): Rename to fetch_regs_kernel_thread.
(store_regs_lib): Rename to store_regs_user_thread.
(store_regs_kern): Rename to store_regs_kernel_thread.
(init_ops): Don't initialize ops.prepare_to_store.
(store_regs_kern): Pre-fetch register buffers from child,
because some registers may not be in the cache. Copy
regs from register cache only if they are cached.
(store_regs_lib): Copy regs from register cache only
if they are cached.
(fill_sprs32, (fill_sprs64, fill_fprs, fill_gprs32,
fill_gprs64): Ditto.
(fill_sprs64, fill_sprs32): Add selected asserts to make sure that
register sizes (from register cache) match size of buffer holding
register data.
(fill_sprs32): Change parameter types to match those in the ptrace()
buffer.
(store_regs_lib): Likewise, but for 32-bit temporary variables.
(ops_prepare_to_store): Rename loop variable ``i'' to ``regno''.
* aix-thread.c (supply_sprs64): Cosmetic change.
(supply_sprs32): Cosmetic change.
(fill_gprs64, fill_gprs32, fill_fprs, fill_sprs32): New funcs.
(fill_sprs64): Use regcache_collect instead of read_register.
(store_regs_lib): Use regcache_collect instead of
read_register. Use fill_sprs32 instead of fill_sprs64,
if debugging a 32-bit architecture.
(store_regs_kern): Use fill_gprs64 etc. to pull the values
out of the register cache, instead of passing a pointer into
the register cache directly to ptrace. Use regcache_collect
insteaad of read_register.
(ops_prepare_to_store): Use target_read_registers instead
of read_register_bytes.
* x86-64-tdep.c: Include "objfiles.h".
(x86_64_gdbarch_init): Set in_solib_call_trampoline to
in_plt_section. From 2002-07-18 Michal Ludvig <mludvig@suse.cz>.
* linux-low.c (regsets_store_inferior_registers): Add free()
at the end of a loop to prevent memory leak.
* linux-x86-64-low.c (x86_64_regmap): Add CS, SS registers.
(X86_64_NUM_GREGS): Count it from the size of x86_64_regmap.