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.
* 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.
* 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.
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.
* 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.
* configure.host (mips*-*-netbsd*): New host.
* configure.tgt (mips*-*-netbsd*): New target.
* mipsnbsd-nat.c: New file.
* mipsnbsd-tdep.c: New file.
* mipsnbsd-tdep.h: New file.
* config/mips/nbsd.mh: New file.
* config/mips/nbsd.mt: New file.
* config/mips/nm-nbsd.h: New file.
* config/mips/tm-nbsd.h: New file.
Implement a "generate-core-file" command in gdb, save target state.
* gcore.c: New file. Implement new command 'generate-core-file'.
Save a corefile image of the current state of the inferior.
* linux-proc.c: Add linux-specific code for saving corefiles.
* target.h (struct target_ops): Add new target vectors for saving
corefiles; to_find_memory_regions and to_make_corefile_notes.
(target_find_memory_regions): New macro.
(target_make_corefile_notes): New macro.
* target.c (update_current_target): Inherit new target methods.
(dummy_find_memory_regions): New place-holder method.
(dummy_make_corefile_notes): New place-holder method.
(init_dummy_target): Initialize new dummy target vectors.
* exec.c (exec_set_find_memory_regions): New function.
Allow the exec_ops vector for memory regions to be taken over.
(exec_make_note_section): New function, target vector method.
* defs.h (exec_set_find_memory_regions): Export prototype.
* procfs.c (proc_find_memory_regions): New function, corefile method.
(procfs_make_note_section): New function, corefile method.
(init_procfs_ops): Set new target vector pointers.
(find_memory_regions_callback): New function.
(procfs_do_thread_registers): New function.
(procfs_corefile_thread_callback): New function.
* sol-thread.c (sol_find_memory_regions): New function.
(sol_make_note_section): New function.
(init_sol_thread_ops): Initialize new target vectors.
* inftarg.c (inftarg_set_find_memory_regions): New function.
Allow to_find_memory_regions vector to be taken over.
(inftarg_set_make_corefile_notes): New function.
Allow to_make_corefile_notes vector to be taken over.
* thread-db.c (thread_db_new_objfile): Don't activate thread-db
interface layer if not target_has_execution (may be a corefile).
* config/i386/linux.mh: Add gcore.o to NATDEPFILES.
* config/sparc/sun4sol2.mh: Ditto.
* config/alpha/alpha-linux.mh: Ditto.
* config/arm/linux.mh: Ditto.
* config/i386/x86-64linux.mh: Ditto.
* config/ia64/linux.mh: Ditto.
* config/m68k/linux.mh: Ditto.
* config/mips/linux.mh: Ditto.
* config/powerpc/linux.mh: Ditto.
* config/sparc/linux.mh: Ditto.
* config/mips/irix6.mh: New file.
* config/mips/irix6.mt: New file.
* config/mips/xm-irix6.h: New file.
* config/mips/nm-irix6.h: New file.
* mips-tdep.c (mips_gdbarch_init) <MIPS_ABI_N32>: Set up the
disassembler info in tm_print_insn_info as appropriate for the N32
ABI. Force N32 ABI to be the default if the CPU is R8000 or
R10000.
* configure.tgt (mips*-sgi-irix6*): Map to irix6.
* configure.host (mips*-sgi-irix6*): Ditto.
* gdbarch.sh (IEEE_FLOAT): New entry.
* gdbarch.c, gdbarch.h: Regenerated.
* valprint.c (IEEE_FLOAT): Provide a default #definition for this.
(print_floating): Use IEEE_FLOAT as if it were an expression; use
the code specific to IEEE-format numbers whenever the value of
IEEE_FLOAT is non-zero.
* config/a29k/tm-a29k.h, config/alpha/tm-alpha.h,
config/arc/tm-arc.h, config/arm/tm-arm.h, config/fr30/tm-fr30.h,
config/h8300/tm-h8300.h, config/i386/tm-i386.h,
config/i960/tm-i960.h, config/m88k/tm-m88k.h,
config/mips/tm-mips.h, config/pa/tm-hppa.h,
config/sparc/tm-sparc.h, config/delta/tm-delta.h,
config/frv/tm-frv.h (IEEE_FLOAT): For all ports that #define
IEEE_FLOAT, make sure they give it the value (1).
* config/arm/tm-wince.h: New file.
* config/arm/wince.mt New file.
* config/sh/tm-wince.h: New file.
* config/sh/wince.mt New file.
* config/mips/tm-wince.h: New file.
* config/mips/wince.mt New file.
* wince.c: New file.
* wince-stub.c: New file.
* wince-stub.h: New file.
* sh-tdep.c: Use correct register names for Windows CE.
* valops.c (COERCE_FLOAT_TO_DOUBLE): Rework definition to be
more function-like.
(default_coerce_float_to_double, standard_coerce_float_to_double):
New functions.
(value_arg_coerce): Adjust for new definition.
* value.h (default_coerce_float_to_double,
standard_coerce_float_to_double): New declarations for the above.
* gdbarch.sh (coerce_float_to_double): New entry, replacing macro.
* gdbarch.c, gdbarch.h: Regenerated.
* tm-alpha.h, tm-fr30.h, tm-m32r.h, tm-mips.h, tm-hppa.h,
tm-rs6000.h, tm-sh.h, tm-sparc.h (COERCE_FLOAT_TO_DOUBLE): Change
definitions.
* mips-tdep.c (mips_coerce_float_to_double): Supply our own custom
function here.
(mips_gdbarch_init): Install that as our coerce_float_to_double
function.
Add two pointers (saved_regs, extra_info) to struct frame_info.
Introduce new macro FRAME_INIT_SAVED_REGS which replaces
FRAME_FIND_SAVED_REGS.
Document.
Use in mn10300 and rs6000 targets. Fix side effects on ALPHA, MIPS,
Z8K and SPARC targets.
Convert mn10300, MIPS and powerpc/rs6000 targets to use
BREAKPOINT_FROM_PC
Delete global variable memory_breakpoint_size. Use BREAKPOINT_FROM_PC
instead.
(mips_addr_bits_remove): Test mask_address_p to decide whether
to mask off the upper 32 bits of addresses.
(_initialize_mips_tdep): Add command to set mask_address_p.
(mips_call_dummy_address): New function.
* config/mips/tm-mips.h (CALL_DUMMY_ADDRESS): Redefine to
call mips_call_dummy_address.
* config/mips/tm-irix5.h: Modify to work better on irix 6, by
making FP registers 8 bytes instead of 4.
REGISTER_BYTES: redefine. REGISTER_BYTE(): redefine.
REGISTER_VIRTUAL_TYPE: redefine. MIPS_LAST_ARG_REGNUM: redefine.
* irix5-nat.c (fetch_core_registers): read 8 bytes per FP register.
* mips-tdep.c (FP_REGISTER_DOUBLE): new macro to distinguish
targets with 8-byte FP registers (don't use TARGET_MIPS64).
(STACK_ARGSIZE): new macro, how much space is taken up on the
stack for each function argument (don't use TARGET_MIPS64).
(mips_push_arguments): modify logic to work better on Irix 6
(n32 ABI).
* configure.tgt: Switch over to use tm-4320.h. Since I switched to
MIPS EABI the fixes are no longer backward compatible with 4300.
* tm-vr4320.h: Added
* vr4320.mt: Added
Configuration triple mips64vr4111-*-elf
64 bit architecture
16 bit sub core
32 bit ints and floats
No floating point unit
MIPS EABI interface
Dwarf2 debugging format
recognition, no source files for these (note that the i386 Mach
is pre-Mach 3).
(mips*-*-mach3*, ns32k-*-mach3*): Fix file names.
* config/mips/mipsel64.mt: Remove, never referenced.
* monitor.c (monitor_debug): Move to utils.c, rename to puts_debug.
(monitor_write_memory, monitor_read_memory, monitor_insert_breakpoint,
monitor_remove_breakpoint): Remove useless address bits if current
monitor has MO_ADDR_BITS_REMOVE flag.
* monitor.h (MO_ADDR_BITS_REMOVE): Define.
* utils.c (puts_debug): Formerly monitor_debug from monitor.c;
move here and make public. Add better support for carriage returns.
* defs.h (puts_debug): Declare.
* dsrec.c (load_srec): Use puts_debug to print remotedebug information.
Output header record correctly.
(make_srec): Output a header record instead of a termination record
if sect is non-NULL (value is ignored), but abfd is NULL.
* config/mips/tm-tx39.h (DEFAULT_MIPS_TYPE): Remove definition.
(REGISTER_NAMES): Define to add R3900-specific registers.
* config/mips/tm-tx39l.h: Ditto.
* config/mips/tx39.mt (TDEPFILES): Add dve3900-rom.o and support files.
* config/mips/tx39l.mt: Ditto.
In dwarf2read.c, if the ABI is 32 bit and 64 bit addresses are encountered
discard the most significant 32 bits.
Use CORE_ADDR for address variables instead of long.
Add more explicit tx49 configur target.
Check/use sigaction/SA_RESTART in remote-sim.c
addresses to be odd.
(MIPS_FPU_SINGLE_REGSIZE, MIPS_FPU_DOUBLE_REGSIZE): Define.
* mips-tdep.c (mips_extract_return_value): Doubles aren't
returned in FP0 if FP registers are single-precision only.
start-sanitize-r5900
* config/mips/tm-r5900.h (MIPS_LAST_FP_ARG_REGNUM): Redefine
to disable use of FP registers for function arguments.
end-sanitize-r5900
member for storing offset of MIPS16 frame pointer from SP.
* mips-tdep.c: Use RA_REGNUM instead of hardcoded 31 throughout.
(PROC_FRAME_ADJUST): Define.
(mips16_heuristic_proc_desc): Store frame pointer adjustment value.
(get_frame_pointer): Use frame pointer adjustment value when
calculating frame address.
* remote-sim.c (gdbsim_fetch_register): Don't fetch registers
that have a null or empty name.
start-sanitize-tx19
* config/mips/tm-tx19.h (MIPS_DEFAULT_FPU_TYPE): Define.
(REGISTER_NAMES): Redefine to eliminate FP registers.
* config/mips/tm-tx19l.h: Ditto.
end-sanitize-tx19
(end_psymtab): Use MSYMBOL_SIZE to extract size from minimal symbol.
* elfread.c (elf_symtab_read): If ELF symbol is "special",
such as a MIPS16 function, mark minimal symbol as special too.
* mips-tdep.c (pc_is_mips16): New function to check whether
a function is MIPS16 by looking at the minimal symbol. Use
pc_is_mips16 throughout instead of IS_MIPS16_ADDR macro.
* config/mips/tm-mips.h (SYMBOL_IS_SPECIAL, MAKE_MSYMBOL_SPECIAL,
MSYMBOL_IS_SPECIAL, MSYMBOL_SIZE): New functions for setting/testing
"special" MIPS16 bit in ELF and minimal symbols.
* mdebugread.c (parse_partial_symbols): Don't construct a partial
symbol table for a file that already has one.
start-sanitize-tx19
* configure.tgt: Support TX19.
* config/mips/tm-tx19.h, config/mips/tm-tx19l.h, config/mips/tx19.mt,
config/mips/tx19l.mt: New files for TX19.
end-sanitize-tx19
stepping over an instruction that triggered a watchpoint.
* remote-mips.c: Numerous changes to support hardware breakpoints
and watchpoints on LSI MiniRISC and TinyRISC boards.
* mips-tdep.c: Move MIPS16-related macros to config/mips/tm-mips.h.
(mips_breakpoint_from_pc): Account for different breakpoint
instructions used by PMON and IDT monitor.
* config/mips/tm-embed.h: Enable hardware breakpoints on embedded
MIPS targets.
* config/mips/tm-mips.h: Define breakpoint instructions for
PMON and IDT monitor. Move MIPS16-related macros here from
mips-tdep.c.
* procfs.c: Substantial (but incomplete) changes to support
sysv4.2mp procfs as implemented in UnixWare 2.1. The procinfo
struct now has substructs like struct flt_ctl instead of
just a fltset_t and has a ctl_fd, status_fd, as_fd, and
map_fd instead of a single fd. Non-sysv4.2mp procfs models
still have the structs and multiple fds, but don't use the
entire struct and the four fds all point to the same thing.
We use PROCFS_USE_READ_WRITE to decide whether to talk to
procfs with reads/writes or use ioctl instead. We use
HAVE_MULTIPLE_PROC_FDS to determine whether procfs really has
multiple fds or not. PROC_NAME_FMT is split out into
CTL_PROC_NAME_FMT, AS_PROC_NAME_FMT, MAP_PROC_NAME_FMT,
STATUS_PROC_NAME_FMT.
(procfs_notice_signals): now a necessary wrapper around
(notice_signals): which are the new guts for noticing signals
(open_proc_file): gets a new flag arg used in sysv4.2mp to
determine whether or not to attempt to open the ctl_fd.
(procfs_read_status): new local function, reads procfs status
(procfs_write_pcwstop): new local function, writes a PCWSTOP
(procfs_write_pckill): new local function, writes a PCKILL
(unconditionally_kill_inferior): remove signo since we now
just call procfs_write_pckill().
(procfs_xfer_memory): call lseek with SEEK_SET rather than 0
(proc_iterate_over_mappings): the whole function is ifdefed
on UNIXWARE to keep things readable.
Expanded the syscall_table to include new potential sysv4.2mp
members. Note that all ifdefs of UNIXWARE should be eliminated
if possible or renamed to describe what's being selected for a
bit better. Sysv4.2mp and IRIX both have SYS_sproc so the
IRIX specific code now also checks it's not UNIXWARE.
* config/i386/tm-i386v42mp.h: also define HAVE_PSTATUS_T,
HAVE_NO_PRRUN_T, PROCFS_USE_READ_WRITE, and UNIXWARE
* config/mips/nm-irix4.h: set CTL_PROC_NAME_FMT et al to
"/debug/%d" as PROC_NAME_FMT used to be
mips_skip_stub, mips_ignore_helper): New functions for dealing
with MIPS16 call/return thunks.
(mips_init_frame_pc_first): New function to implement
INIT_FRAME_PC_FIRST macro; includes code from old macro plus
new code to skip over MIPS16 thunks.
(mips_frame_chain): Skip over MIPS16 thunks.
* config/mips/tm-mips.h (mips_in_call_stub, mips_in_return_stub,
mips_skip_stub, mips_ignore_helper): Declare.
(IN_SOLIB_CALL_TRAMPOLINE, IN_SOLIB_RETURN_TRAMPOLINE,
SKIP_TRAMPOLINE_CODE, IGNORE_HELPER_CALL): New macros that invoke
the above functions.
(INIT_FRAME_PC_FIRST): Change to invoke mips_init_frame_pc.
(mips_init_frame_pc): Declare.
* infrun.c (wait_for_inferior): Use new IGNORE_HELPER_CALL macro
to decide if certain library function calls should be ignored.