(struct gdbarch_tdep): Add fp_model.
* arm-tdep.c (arm_gdbarch_init): Set fp_model in tdep. Defer setting
up floating-point conversions until we know the floating-point model
in use by the inferior. Don't complain about being unable to
determine the ABI of the inferior when we don't have one.
(arm_extract_return_value): Support different floating-point models.
(arm_store_return_value): Likewise.
* armnbsd-tdep.c (arm_netbsd_aout_init_abi): Set fp_model in tdep to
ARM_FLOAT_SOFT.
(arm_netbsd_elf_init_abi): Set fp_model to ARM_FLOAT_SOFT_VFP.
* gdbarch.c gdbarch.h: Regenerate.
* breakpoint.c (create_longjmp_breakpoint): Always compile this
function.
(breakpoint_reset): Test GET_LONGJMP_TARGET_P().
* infrun.c (GET_LONGJMP_TARGET): Delete default definition.
(handle_inferior_event): Test GET_LONGJMP_TARGET_P().
* arm-tdep.h (struct gdbarch_tdep): Add jb_pc and jb_elt_size fields.
* arm-tdep.c (arm_get_longjmp_target): New function.
(arm_gdbarch_init): Initialize jb_pc to -1. If ABI handler changes
this to a positive value register arm_get_longjmp_target as the
longjmp handler.
* arm-linux-tdep.c (arm_get_longjmp_target): Delete.
(arm_linux_init_abi): Set up longjmp description in tdep.
* armnbsd-nat.c (get_longjmp_target): Delete.
* armnbsd-tdep.c (arm_netbsd_init_abi_common): Set up longjmp
description in tdep.
* config/arm/tm-nbsd.h (JB_ELEMENT_SIZE, JB_PC): Delete.
(get_longjmp_target): Delete declaration.
(GET_LONGJMP_TARGET): Delete.
* config/arm/tm-linux.h (arm_get_longjmp_target): Delete declaration.
(GET_LONGJMP_TARGET): Delete.
(struct gdbarch_tdep): New structure.
(LOWEST_PC): Provide a default.
(arm_gdbarch_register_os_abi): Declare new function.
* arm-tdep.c (arm_abi_names): New array.
(process_note_abi_tag_sections): New function.
(get_elfosabi): New function.
(arm_gdbarch_register_os_abi): New function.
(arm_gdbarch_init): Try to determine the ABI of the inferior. If
support for that ABI has been built in, then call the appropriate
configuration routine. Use gdbarch_num_regs() to get the number
of registers.
(arm_dump_tdep): New function.
(arm_init_abi_eabi_v1, arm_init_abi_eabi_v2, arm_init_abi_apcs): New
place-holder functions.
(_initialize_arm_tdep): Register them.
* config/arm/tm-arm.h (LOWEST_PC): Delete.
* armnbsd-tdep.c: New file.
* Makefile.in (armnbsd-tdep.o): Add dependencies.
* config/arm/nbsd.mt (TDEPFILES): Add it.
* config/arm/tm-nbsd.h (LOWEST_PC): Delete.
* armnbsd-nat.c: Include regcache.h.
* Makefile.in (armnbsd-nat.o): Update dependency list.
* arm-tdep.c (arm_get_next_pc): Use printf_filtered for error message.
with other related struct-returning functions.
(arm_extract_struct_value_address): New function.
(arm_gdbarch_init): Initialize the above in multi-arch vector. Also
initialize float_format, double_format and long_double_format as
appropriate to the endianness of the target.
* config/arm/tm-arm.h (TARGET_DOUBLE_FORMAT): Delete.
(arm_use_struct_convention): Delete declaration.
(USE_STRUCT_CONVENTION, EXTRACT_STRUCT_VALUE_ADDRESS): Delete.
2002-01-21 Fred Fish <fnf@redhat.com>
* arm-tdep.c (thumb_skip_prologue): Quit scanning prologue
when we have found all instructions we are looking for.
(arm_registers_names): Make static.
* config/arm/tm-arm.h (arm_register_names): Delete declaration.
(arm_register_name): Declare.
(REGISTER_NAME): Use it.
and Kevin Buettner <kevinb@redhat.com>
Convert arm targets to new FRAME interface.
* arm-tdep.c (struct frame_extra_info): Remove fsr.
(arm_frame_find_save_regs): Delete.
(arm_frame_init_saved_regs): New.
(arm_init_extra_frame_info): Alloacte saved_regs as required.
Allocate extra_info as required. Convert all uses of fsr.regs
to use saved_regs, similarly all uses of EXTRA_FRAME_INFO fields
to use extra_info.
(thumb_scan_prologue, arm_scan_prologue, arm_find_callers_reg)
(arm_frame_chain, arm_frame_saved_pc, arm_pop_frame): Likewise.
(check_prologue_cache, save_prologue_cache): Likewise.
(_initialize_arm_tdep): Ensure prologue_cache is correctly set up.
* config/arm/tm-arm.h (EXTRA_FRAME_INFO): Delete.
(FRAME_FIND_SAVED_REGS): Delete.
(arm_frame_find_saved_regs): Delete prototype.
(arm_frame_init_saved_regs): New prototype.
(FRAME_INIT_SAVED_REGS): Define.
* corefile.c (do_captured_read_memory_integer,
safe_read_memory_integer): New functions.
* gdbcore.h (safe_read_memory_integer): Export.
* arm-tdep.c (arm_scan_prologue): Use safe_read_memory_integer,
to read the frame value, to capture calls to error().
From Richard Earnshaw <rearnsha@arm.com>:
* arm-tdep.c (arm_software_single_step): New function. Implements
software single-stepping for ARM targets.
(arm_get_next_pc, thumb_get_next_pc, bitcount, shifted_reg_val): Only
needed for software single-stepping.
* config/arm/tm-arm.h: Activate SOFTWARE_SINGLE_STEP_P.
assembler version of function.
(convert_from_extended, convert_to_extended): Rewrite. Use
floatformat_to_doublest, floatformat_from_doublest,
floatformat_arm_ext_big, floatformat_arm_ext_littlebyte_bigword.
(arm_push_arguments): Use extract_floating and store_floating to
perform floating point conversions.
(SWAP_TARGET_AND_HOST): Delete macro.
* arm-linux-tdep.c (arm_linux_push_arguments): Use
extract_floating and store_floating to perform floating point
conversions.
* remote-rdi.c (voiddummy): Update function signature to match
struct Dbg_HostosInterface's reset method.
* remote-rdp.c (rdp_step): Fix handle parameter to
remote_rdp_insert_breakpoint and remote_rdp_remove_breakpoint.
* arm-tdep.c (SIGCONTEXT_REGISTER_ADDRESS_P): Provide default
definition.
(arm_init_extra_frame_info): Use.
* arm-tdep.c (set_disassembly_flavor, arm_othernames,
_initialize_arm_tdep): Allows the user to choose between any of
the flavors available for the disassembly to be used in the "info
reg" command and elsewhere in gdb. It prevents having to maintain
this information in two places by using the data kept in the
opcodes directory.