Commit graph

69 commits

Author SHA1 Message Date
Richard Earnshaw
19d3fc80c1 * arm-linux-tdep.c (arm_linux_extract_return_value): Make static.
(arm_linux_push_arguments): Likewise.
(arm_linux_init_abi): Register them.  Also register linux-specific
call_dummy_words.
(find_minsym_and_objfile): Use strcmp, not STREQ.
* config/arm/tm-linux.h (CALL_DUMMY_WORDS): Delete.
(arm_linux_call_dummy_words): Delete declaration.
(EXTRACT_RETURN_VALUE, PUSH_ARGUMENTS): Delete.
(arm_linux_extract_return_value, arm_linux_push_arguments): Delete
declarations.
(LOWEST_PC): Delete.
2002-02-23 17:07:57 +00:00
Richard Earnshaw
fdf39c9a14 * arm-linux-nat.c: Linux -> GNU/Linux when not talking about the
kernel.
* arm-linux-tdep.c: Likewise.
* config/arm/tm-linux.h: Likewise.
2002-02-19 14:29:00 +00:00
Richard Earnshaw
9df628e0aa * gdbarch.sh (GET_LONGJMP_TARGET): Add rule.
* 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.
2002-02-18 13:35:31 +00:00
Richard Earnshaw
66e810cd09 * arm-tdep.h (struct gdbarch_tdep): Add fields for breakpoint
descriptions.
* arm-tdep.c (arm_default_arm_le_breakpoint)
(arm_default_arm_be_breakpoint, arm_default_thumb_le_breakpoint)
(arm_default_thumb_be_breakpoint): New.  Initialize them from
traditional breakpoint defines.
(arm_breakpoint_from_pc): Use new gdbarch_tdep entries.
(arm_gdbarch_init): Initialize new breakpoint variables.
* arm-linux-tdep.c (arm_linux_arm_le_breakpoint): New.
(arm_linux_init_abi): Initialize linux-specific breakpoint.
* armnbsd-tdep.c (arm_nbsd_arm_le_breakpoint): New.
(arm_netbsd_aout_init_abi, arm_netbsd_elf_init_abi): Split common
code out to ...
(arm_netbsd_init_abi_common): ... here; new function.
* config/arm/tm-arm.h (ARM_LE_BREAKPOINT, ARM_BE_BREAKPOINT)
(THUMB_LE_BREAKPOINT, THUMB_BE_BREAKPOINT): Delete.
* config/arm/tm-linux.h (ARM_LE_BREAKPOINT): Delete.
* config/arm/tm-nbsd.h (ARM_LE_BREAKPOINT): Delete.
2002-02-15 16:12:24 +00:00
Richard Earnshaw
97e03143bb * arm-tdep.h (enum arm_abi): New enum.
(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.
2002-02-15 13:35:27 +00:00
Richard Earnshaw
34e8f22ded * arm-tdep.h: New file.
* arm-tdep.c: Include arm-tdep.h.
(arm_addr_bits_remove, arm_smash_text_address, arm_saved_pc_after_call)
(arm_skip_prologue, arm_call_dummy_words, arm_fix_call_dummy)
(arm_print_float_info, arm_register_type, convert_to_extended)
(arm_elf_make_msymbols_special, arm_coff_make_msymbol_special)
(arm_extract_return_value, arm_register_name): Make static.
(arm_software_single_step): Similarly.  Fix types in declaration.
(arm_register_byte, arm_register_raw_size, arm_register_virtual_size)
(arm_store_return_value, arm_store_struct_return): New functions.
(arm_gdbarch_init): Register the above functions.  Also register
call_dummy_start_offset, sizeof_call_dummy_words,
function_start_offset, inner_than, decr_pc_after_break, fp_regnum,
sp_regnum, pc_regnum, register_bytes, num_regs, max_register_raw_size,
max_register_virtual_size, register_size.  Set up
prologue_cache.saved_regs here, rather than ...
(_initialize_arm_tdep): ... here.
* config/arm/tm-arm.h (struct type, struct value): Delete forward
declarations.
(arm_addr_bits_remove, arm_smash_text_address, arm_saved_pc_after_call)
(arm_skip_prologue, arm_call_dummy_words, arm_fix_call_dummy)
(arm_print_float_info, arm_register_type, convert_to_extended)
(arm_elf_make_msymbols_special, arm_coff_make_msymbol_special)
(arm_extract_return_value, arm_register_name): Delete declarations.
(SMASH_TEXT_ADDRESS, ADDR_BITS_REMOVE, FUNCTION_START_OFFSET)
(SKIP_PROLOGUE, SAVED_PC_AFTER_CALL, INNER_THAN, BREAKPOINT_FROM_PC)
(DECR_PC_AFTER_BREAK, PRINT_FLOAT_INFO, REGISTER_SIZE, NUM_REGS)
(REGISTER_NAME, REGISTER_BYTES, REGISTER_BYTE, REGISTER_RAW_SIZE)
(REGISTER_VIRTUAL_SIZE, MAX_REGISTER_RAW_SIZE)
(MAX_REGISTER_VIRTUAL_SIZE, REGISTER_VIRTUAL_TYPE, STORE_STRUCT_RETURN)
(EXTRACT_RETURN_VALUE, STORE_RETURN_VALUE, CALL_DUMMY_WORDS)
(SIZEOF_CALL_DUMMY_WORDS, CALL_DUMMY_START_OFFSET, FIX_CALL_DUMMY)
(SOFTWARE_SINGLE_STEP_P, SOFTWARE_SINGLE_STEP)
(ELF_MAKE_MSYMBOL_SPECIAL, COFF_MAKE_MSYMBOL_SPECIAL) Delete.
(arm_pc_is_thumb, arm_pc_is_thumb_dummy, thumb_get_next_pc)
(arm_get_next_pc): No-longer static -- these are needed by the RDI
interface.
* arm-linux-nat.c arm-linux-tdep.c armnbsd-nat.c: Include arm-tdep.h.
* remote-rdi.c remote-rdp.c: Likewise.
* Makefile.in (arm-linux-nat.o, arm-linux-tdep.o arm-tdep.o)
(armnbsd-nat.o, remote-rdi.o, remote_rdp.o): Update dependencies.
* config/arm/tm-nbsd.h (SOFTWARE_SINGLE_STEP_P): Delete bogus
definition.

* arm-tdep.h (ARM_A1_REGNUM, ARM_A4_REGNUM, ARM_AP_REGNUM)
(ARM_SP_REGNUM, ARM_LR_REGNUM, ARM_PC_REGNUM, ARM_F0_REGNUM)
(ARM_F3_REGNUM, ARM_F7_REGNUM, ARM_FPS_REGNUM, ARM_PS_REGNUM): Renamed
from non-ARM_ prefixed definitions.
* arm-tdep.c armnbsd-nat.c arm-linux-nat.c arm-linux-tdep.c: Update
all uses of above.
* remote-rdi.c remote-rdp.c: Likewise.
* arm-linux-nat.c (ARM_CPSR_REGNUM): Renamed from CPSR_REGNUM.
2002-02-11 18:34:12 +00:00
Richard Earnshaw
6eb69eab29 * arm-tdep.c (arm_call_dummy_words): Define.
* arm-linux-tdep.c (arm_linux_call_dummy_words): Define.
* config/arm/tm-arm.h (CALL_DUMMY_P): Define.
(CALL_DUMMY_WORDS): Define.
(arm_call_dummy_words): Declare.
* config/arm/tm-linux.h (CALL_DUMMY_WORDS): Define.
(arm_linux_call_dummy_words): Declare.
2002-01-30 16:35:51 +00:00
Fred Fish
9b27852e6d Approved by Jim Blandy:
2001-12-10  Fred Fish  <fnf@redhat.com>
	* arm-linux-tdep.c (skip_hurd_resolver): Use NULL rather than
	zero in args to lookup_minimal_symbol.
	* linespec.c (decode_line_1): Ditto.
	* i386-linux-tdep.c (skip_hurd_resolver): Ditto.
	* minsyms.c (find_stab_function_addr): Ditto.
	* symfile.c (simple_read_overlay_table): Ditto.
	(simple_read_overlay_region_table): Ditto.
2001-12-10 22:04:10 +00:00
Andrew Cagney
a37b3cc06e * arm-tdep.c (convert_from_extended, convert_to_extended): Delete
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.
2001-08-21 04:31:32 +00:00
Andrew Cagney
d16aafd8c8 * defs.h (HOST_FLOAT_FORMAT, HOST_DOUBLE_FORMAT)
(HOST_FLOAT_FORMAT, HOST_DOUBLE_FORMAT)
(HOST_LONG_DOUBLE_FORMAT, DOUBLEST)
(floatformat_to_doublest, floatformat_from_doublest)
(floatformat_is_negative, floatformat_is_nan)
(floatformat_mantissa, store_floating)
(extract_floating): Move declaration from here.
* doublest.h: To here.  New file.
* utils.c (get_field, floatformat_to_doublest, put_field)
(ldfrexp, floatformat_from_doublest, floatformat_is_negative)
(floatformat_is_nan, floatformat_mantissa)
(FLOATFORMAT_CHAR_BIT): Move from here.
* doublest.c: To here.  New file.
* findvar.c (store_floating, extract_floating): Move from here.
* doublest.c: To here.
* Makefile.in (SFILES): Add doublest.c.
(COMMON_OBS): Add doublest.o.
(doublest.o): Specify dependencies.
(doublest_h): Define.

* config/m88k/tm-m88k.h: Include "doublest.h".
* config/i960/tm-i960.h: Ditto.
* config/i386/tm-symmetry.h: Ditto.
* rs6000-tdep.c, valarith.c: Ditto.
* valprint.c, stabsread.c, sh-tdep.c: Ditto.
* ia64-tdep.c, i387-tdep.c, i386-tdep.c: Ditto.
* values.c, arm-tdep.c, arm-linux-tdep.c: Ditto.
* alpha-tdep.c, ax.h, expression.h: Ditto.
* sh-tdep.c, parse.c, top.c, value.h: Ditto.

* Makefile.in (arm-tdep.o): Add $(doublest_h).
(i386-tdep.o, i387-tdep.o, ia64-tdep.o): Ditto.
(rs6000-tdep.o, stabsread.o, valarith.o): Ditto.
(values.o, valprint.o, arm-linux-tdep.o): Ditto.
(alpha-tdep.o, ax_h, parse.o, top.o, value_h): Ditto.
(parser_defs_h): Ditto.
(expression_h): Add $(doublest_h) and $(symtab_h).
2001-08-01 18:39:27 +00:00
Andrew Cagney
ea7c478fe2 s/value_ptr/struct value */ 2001-07-15 20:10:02 +00:00
Andrew Cagney
4e052eda91 Create new file regcache.h. Update all uses. 2001-03-01 01:39:22 +00:00
Scott Bambrough
e1d6e81ff4 Remove stray debugging statement and move prototypes so arm-linux-tdep.c
compiles without warnings.

2000-09-06  Scott Bambrough <scottb@netwinder.org>

	* arm-linux-tdep.c (arm_linux_skip_solib_resolver):
	Removed debug print statement.  Removed arm_pc_is_thumb prototype.
	* config/arm/tm-arm.h (arm_pc_is_thumb, arm_pc_is_thumb_dummy):
	Move prototypes here from tm-embed.h.
	* config/arm/tm-embed.h (arm_pc_is_thumb, arm_pc_is_thumb_dummy):
	Remove prototypes.  Moved to tm-arm.h.
2000-09-06 18:43:49 +00:00
Kevin Buettner
2a451106e2 Add support for backtracing through signal handlers on Linux/ARM. Also,
make prologue scanning code somewhat less naive about optimized code
on GNU/Linux/ARM.
2000-09-06 00:39:11 +00:00
Scott Bambrough
a52e6aac8a Replace SKIP_SOLIB_RESOLVER stub with something that works.
2000-05-25  Scott Bambrough <scottb@netwinder.org>

	* arm-linux-tdep.c (find_minsym_and_objfile): New.
	(skip_hurd_resolver): New.
	(arm_linux_skip_solib_resolver): New.
	(arm_skip_solib_resolver): Removed.

	* config/arm/tm-linux.h (SKIP_SOLIB_RESOLVER): Changed to use
	arm_linux_skip_solib_resolver.
2000-05-25 18:24:33 +00:00
Scott Bambrough
f38e884d67 Move arm_skip_solib_resolver from arm-linux-nat.c to arm-linux-tdep.c.
2000-04-10  Philip Blundell <philb@gnu.org>

	* arm-linux-nat.c (arm_skip_solib_resolver): Remove and move to
	arm-linux-tdep.c.
	* arm-linux-tdep.c (arm_skip_solib_resolver): New.
2000-04-10 21:02:33 +00:00
Scott Bambrough
134e61c4a7 2000-04-07 Scott Bambrough <scottb@netwinder.org>
* ChangeLog: Correct date on last entry.
	* arm-linux-tdep.c (arm_linux_push_arguments): New function.
	* config/arm/tm-linux: Redefined PUSH_ARGUMENTS for Linux.
	* config/arm/tm-embed: Fix build warning from redefinition of
	LOWEST_PC.
	* config/arm/tm-arm.h: Remove TARGET_BYTE_ORDER_SELECTABLE.
	* config/arm/tm-wince.h: Remove TARGET_BYTE_ORDER_SELECTABLE and
	TARGET_BYTE_ORDER.  Add TARGET_BYTE_ORDER_SELECTABLE_P to
	override default in tm-arm.h.  Use default target byte order
	from tm-arm.h.
2000-04-07 22:26:11 +00:00
Scott Bambrough
c20f6dea13 2000-04-05 Scott Bambrough <scottb@netwinder.org>
* arm-linux-tdep.c: Resolve implicit function declarations by
	including target.h and value.h.  Inclusion of symtab.h is
	no longer needed.
	* ChangeLog: Fix formatting of previous entry.
2000-04-05 17:24:08 +00:00
Scott Bambrough
faf5f7ad8a Unable to build x86 hosted debugger for ARM Linux, due to missing target
dependencies.  Created ARM Linux specific arm-linux-tdep.c file and moved
missing code into it from arm-linux-nat.c.

2000-04-05  Scott Bambrough <scottb@netwinder.org>

	* arm-linux-tdep.c: New file.
	* arm-linux-nat.c (fetch_fpregs): Remove unused code.
	  (arm_get_longjmp_target): Moved it and all defines
	  it uses to arm-linux-tdep.c.
	  (arm_linux_extract_return_value): Moved to
	  arm-linux-tdep.c.
	* config/arm/linux.mt: Add arm-linux-tdep.c to TDEPFILES.
2000-04-05 15:38:05 +00:00