vector. Will be useful for Interix.
* gdbarch.h, gdbarch.c: Regenerate.
* valops.c (value_allocate_space_in_inferior): Replace hard-coded
name of the malloc function by NAME_OF_MALLOC.
i386_register_convertible, i386_register_convert_to_virtual,
i386_register_comvert_to_raw): Use FP_REGNUM_P and SSE_REGNUM_P
instead of IS_FP_REGNUM and IS_SSE_REGNUM.
(i386_gdbarch_init): Fix comment. Add comments on calls that set
sp_regnum, fp_regnum, pc_regnum, ps_regnum and fp0_regnum.
Don't set push_arguments twice.
sigtramp_end to i386bsd_sigtramp_start and i386bsd_sigtramp_end.
* i386nbsd-tdep.c (i386nbsd_init_abi): Set sigtramp_start and
sigtramp_end to NULL.
* config/i386/tm-fbsd.h (SIGTRAMP_START, SIGTRAMP_END): Remove
defines.
(i386bsd_sigtramp_start, i386_sigtramp_end): Remove prototypes.
* arm-tdep.c (arm_init_extra_frame_info): Distinguish between
generic_dummy_frame method and old method. Also distinguish
between ARM_FP_REGNUM and THUMB_FP_REGNUM.
* mips-tdep.c (mips_n32n64_push_arguments): Remove alignment
adjustment that doesn't conform to the ABI.
(mips_extract_struct_value_address): Retrieve V0_REGNUM from
saved regcache, not from current regcache.
(i[3456]86-*-netbsd*): ...this. Set gdb_target to nbsd.
(i[3456]86-*-openbsd*): Make this a separate entry. Add a
comment noting that this needs its own target configuration.
* config/i386/nbsd.mt: New file.
* config/i386/nbsdaout.mt: Remove.
* config/i386/nbsdelf.mt: Ditto.
* config/i386/tm-nbsdaout.h: Ditto.
$(i386_tdep_h), and nbsd-tdep.h to dependency list.
* i386-tdep.h (i386bsd_init_abi): New prototype.
* i386bsd-tdep.c (i386bsd_init_abi): Remove "static" from
function declaration.
(_initialize_i386bsd_tdep): Don't register OS ABI handlers
for NetBSD-a.out or NetBSD-ELF.
(i386nbsd_sigtramp_start, i386nbsd_sigtramp_end)
(i386nbsd_sc_pc_offset, i386nbsd_sc_sp_offset)
(i386nbsd_init_abi, i386nbsdelf_init_abi): Move to...
* i386nbsd-tdep.c: ...here. Include arch-utils.h, i386-tdep.h,
and nbsd-tdep.h.
(i386nbsd_pc_in_sigtramp): New function.
(i386nbsd_init_abi): Set gdbarch_pc_in_sigtramp to
i386nbsd_pc_in_sigtramp.
(_initialize_i386nbsd_tdep): Register i386nbsd_init_abi
and i386nbsdelf_init_abi OS ABI handlers.
* config/i386/nbsdaout.mt (TDEPFILES): Add nbsd-tdep.o.
* config/i386/nbsdelf.mt (TDEPFILES): Likewise.
list.
* alphanbsd-tdep.c (alphanbsd_sigcontext_addr)
(alphanbsd_skip_sigtramp_frame): New functions.
(alphanbsd_init_abi): Set tdep->skip_sigtramp_frame to
alphanbsd_skip_sigtramp_frame. Set tdep->sigcontext_addr
to alphanbsd_sigcontext_addr.
list.
(nbsd-tdep.o): Add $(gdb_string_h) to dependency list.
* alphanbsd-tdep.c (alphanbsd_pc_in_sigtramp): Use
nbsd_pc_in_sigtramp.
* mipsnbsd-tdep.c: Include nbsd-tdep.h.
(mipsnbsd_pc_in_sigtramp): Use nbsd_pc_in_sigtramp.
* nbsd-tdep.c: Include gdb_string.h.
(nbsd_pc_in_sigtramp): New function.
* nbsd-tdep.h (nbsd_pc_in_sigtramp): New prototype.
* ppcnbsd-tdep.c (ppcnbsd_pc_in_sigtramp): New function.
(ppcnbsd_init_abi): Set gdbarch_pc_in_sigtramp to
ppcnbsd_pc_in_sigtramp.
* shnbsd-tdep.c (shnbsd_pc_in_sigtramp): New function.
(shnbsd_init_abi): Set gdbarch_pc_in_sigtramp to
shnbsd_pc_in_sigtramp.
* sparcnbsd-tdep.c (sparcnbsd_init_abi_elf): Set
gdbarch_pc_in_sigtramp to nbsd_pc_in_sigtramp.
* config/mips/nbsd.mt (TDEPFILES): Add nbsd-tdep.o.
minimal symbol of an appropriate name and use its address to
select a symtab to read and search, use `name' (as passed to us)
as the demangled name when searching the symtab's global and
static blocks, not the minsym's name.
events.
(select_frame_command): Send selected-frame-level-changed
event notification, but only if the level actually changed.
(up_silently_base): Add selected-frame-level-changed event
notification.
(down_silently_base): Likewise.
* cli/cli-script.c (copy_command_lines): New function.
* defs.h (copy_command_lines): Export.
* testsuite/gdb.base/commands.exp: New tests for commands
attached to a temporary breakpoint, and for commands that
delete the breakpoint they are attached to.
2002-08-26 Michael Snyder <msnyder@redhat.com>
* breakpoint.c (bpstat_stop_status): Instead of copying the
pointer to the breakpoint commands struct, make a new copy
of the struct and point to that.
(bpstat_clear): Free the commands struct.
(bpstat_clear_actions): Free the commands struct.
(bpstat_do_actions): Free the command actions. Also execute
the local cleanups, instead of deleting them.
(delete_breakpoint): Leave the commands field of the bpstat
chain alone -- it will be freed later.
* regcache.h (register_offset_hack): Declare.
(regcache_cooked_read_using_offset_hack): Declare.
(regcache_cooked_write_using_offset_hack): Declare.
* regcache.c (register_offset_hack): New function.
(regcache_cooked_read_using_offset_hack): New function.
(regcache_cooked_write_using_offset_hack): New function.
(regcache_dump): Check that the registers, according to their
offset, are packed hard against each other.
(cooked_xfer_using_offset_hack): New function.
* regcache.c (struct regcache_descr): Add field register_type.
(init_legacy_regcache_descr): Pass a pre-allocated regcache_descr
in as a parameter
(init_regcache_descr): Initialize register_type. Pass the descr
to init_legacy_regcache_descr. Use register_type instead of
REGISTER_VIRTUAL_TYPE.
(register_type): New function.
(regcache_dump): Replace REGISTER_VIRTUAL_TYPE with register_type.
* regcache.h (register_type): Declare.
* rs6000-tdep.c (rs6000_gdbarch_init): Set store_struct_return
instead of deprecated_store_return_value. Fix fallout from
2002-08-23 Andrew Cagney <cagney@redhat.com>.
* regcache.c (max_register_size): New function.
(init_legacy_regcache_descr): Ensure that max_register_size is
large enough for REGISTER_VIRTUAL_SIZE.
* regcache.h (max_register_size): Declare.
* rs6000-tdep.c (rs6000_gdbarch_init): Use deprecated version of
store_return_value.
(e500_extract_return_value): Change type of valbuf pointer to
void.
when breakpoints fail. Move general breakpoint error messages to
insert_breakpoints.
* breakpoint.c (insert_breakpoints): Change warnings when
breakpoints are nto inserted to specify the type. Remove call to
memory_error when hardware breakpoints can't be inserted. Remove
multiple calls to warning so all messages are sent to the user at
once.
(delete_breakpoints): Make insert error messsages more explicit.
(i386_svr4_init_abi): Set in_solib_call_trampoline and
skip_trampoline_code.
* config/i386/tm-i386v4.h: Don't include "config/tm-sysv4.h".
(CPLUS_MARKER): Define to '.'.
member.
(linux_corefile_thread_callback): Increase args->num_notes.
(linux_make_note_section): Initialize thread_args.num_notes, and
use it to determine whether notes for any threads were created.
corresponding macro is not defined. Likewise for PCNICE, PCSHOLD
and PCUNKILL.
(write_with_trace): Conditionalize out the switch branch handling
PCSHOLD if the corresponding macro is not defined. Likewise for
PRSABORT and PRSTOP.
This change will be needed by the Interix port.
* rs6000-tdep.c (struct rs6000_framedata): Add saved_ev and
ev_offset fields.
(skip_prologue): Add support for BookE/e500 instructions.
(e500_extract_return_value): New function.
(frame_get_saved_regs): Add support for saving ev registers and
pseudo gpr's.
(e500_store_return_value): New function.
(rs6000_gdbarch_init): Move up default intializations of
deprecated_extract_return_value and store_return_value. Overwrite
init of store_return_value with e500 specific version.
Set extract_return_value for e500.
number table from disk if the image file doesn't have a symbol
table; we'll never actually look at the info anyway, and Windows
ships DLL's with bogus file offsets for the line number data.
* 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.