Commit graph

8 commits

Author SHA1 Message Date
Andreas Schwab
c481dac737 * m68k-tdep.h (enum struct_return): Define.
(struct gdbarch_tdep): Add struct_return.
	* m68k-tdep.c (m68k_push_dummy_call): Non-scalars bigger than 4
	bytes are padded to the right, not to the left.  Pass struct value
	address in register %a1, not on stack.
	(m68k_use_struct_convention): New function.
	(m68k_gdbarch_init): Set use_struct_convention.  Initialize
	struct_return in tdep to pcc_struct_return.
	* m68klinux-tdep.c (m68k_linux_init_abi): Set struct_return to
	reg_struct_return.
2003-07-09 21:36:08 +00:00
Andreas Schwab
8de307e0c2 * Makefile.in (m68k-tdep.o, m68klinux-tdep.o): Update
dependencies.
	* m68k-tdep.c (NUM_FREGS): Delete.
	(SIG_PC_FP_OFFSET): Delete.
	(TARGET_M68K): Delete.
	(P_MOVEAL_SP_FP, P_ADDAW_SP, P_ADDAL_SP, P_SUBQW_SP,
	P_SUBQL_SP, P_LEA_SP_SP, P_LEA_PC_A5, P_FMOVEMX_SP,
	P_MOVEL_SP, P_MOVEML_SP): Define.
	(P_MOVL_SP_FP, P_MOVL, P_JSR, P_BSR, P_LEAL, P_MOVML, P_FMOVM,
	P_TRAP): Delete.
        (m68k_register_raw_size): Delete.
	(m68k_register_virtual_size): Delete.
	(m68k_register_type): Renamed from m68k_register_virtual_type and
	add gdbarch argument.
	(m68k_store_struct_return): Delete.
	(m68k_deprecated_extract_return_value): Delete.
	(m68k_deprecated_extract_struct_value_address): Delete.
	(m68k_frame_chain): Delete.
	(m68k_frame_saved_pc): Delete.
	(m68k_fix_call_dummy): Delete.
	(m68k_push_dummy_frame): Delete.
	(m68k_pop_frame): Delete.
	(m68k_extract_return_value): New function.
	(m68k_store_return_value): Rewrite using regcache.
	(m68k_extract_struct_value_address): Rewrite using regcache.
	(m68k_push_dummy_call): New function.
	(struct m68k_frame_cache): Define.
	(m68k_alloc_frame_cache): New function.
	(m68k_analyze_frame_setup): New function.
	(m68k_analyze_register_saves): New function.
	(m68k_analyze_prologue): New function.
	(m68k_skip_prologue): Rewrite using above functions.
	(m68k_unwind_pc): New function.
	(m68k_frame_cache): New function.
	(m68k_frame_this_id): New function.
	(m68k_frame_prev_register): New function.
	(m68k_frame_unwind): New variable.
	(m68k_frame_p): New function.
	(m68k_sigtramp_frame_cache): New function.
	(m68k_sigtramp_frame_this_id): New function.
	(m68k_sigtramp_frame_prev_register): New function.
	(m68k_sigtramp_frame_unwind): New variable.
	(m68k_sigtramp_frame_p): New function.
	(m68k_frame_base_address): New function.
	(m68k_frame_base): New function.
	(m68k_unwind_dummy_id): New function.
	(fill_gregset): Use regcache_collect.
	(fill_fpregset): Likewise.
	(m68k_saved_pc_after_call): Only define if SYSCALL_TRAP is
	defined.
	(m68k_gdbarch_init): Don't define call_dummy_words.  Don't set
	deprecated_init_frame_pc, deprecated_store_struct_return,
	deprecated_extract_return_value, deprecated_store_return_value,
	deprecated_frame_chain, deprecated_frame_saved_pc,
	deprecated_frame_init_saved_regs, deprecated_register_raw_size,
	deprecated_register_virtual_size,
	deprecated_max_register_raw_size,
	deprecated_max_register_virtual_size,
	deprecated_register_virtual_type, deprecated_register_size,
	deprecated_register_byte, deprecated_register_bytes,
	deprecated_fp_regnum, deprecated_use_generic_dummy_frames,
	call_dummy_location, deprecated_call_dummy_breakpoint_offset,
	deprecated_pc_in_call_dummy, deprecated_call_dummy_length,
	deprecated_call_dummy_start_offset, deprecated_call_dummy_words,
	deprecated_sizeof_call_dummy_words, deprecated_fix_call_dummy,
	deprecated_push_dummy_frame, deprecated_pop_frame,
	deprecated_dummy_write_sp.  Set deprecated_saved_pc_after_call
	only if SYSCALL_TRAP is defined.  Set extract_return_value,
	store_return_value, extract_struct_value_address, register_type,
	push_dummy_call, unwind_dummy_id, unwind_pc.  Add two frame unwind
	predicates.
	* m68k-tdep.h (M68K_D1_REGNUM, M68K_NUM_REGS,
	M68K_MAX_REGISTER_SIZE): Define.
	(struct m68k_sigtramp_info): Define.
	(struct gdbarch_tdep): Add get_sigtramp_info.
	* m68klinux-nat.c (fetch_register): Use register_size instead of
	REGISTER_RAW_SIZE.  Don't put assignment in if.
	(store_register): Likewise.
	(fetch_inferior_registers): Likewise.
	(store_inferior_registers): Likewise.
	* m68klinux-tdep.c (m68k_linux_sigtramp_saved_pc): Delete.
	(m68k_linux_frame_saved_pc): Delete.
	(m68k_linux_sigcontext_reg_offset,
	m68k_linux_ucontext_reg_offset): Define.
	(m68k_linux_get_sigtramp_info): New function.
	(m68k_linux_extract_return_value): Rewrite using regcache.
	(m68k_linux_store_return_value): Likewise.
	(m68k_linux_extract_struct_value_address): Likewise.
	(m68k_linux_init_abi): Set get_sigtramp_info in tdep structure.
	Don't set deprecated_frame_saved_pc,
	deprecated_extract_return_value, deprecated_store_return_value,
	deprecated_extract_struct_value_address.  Set
	extract_return_value, store_return_value,
	extract_struct_value_address.
2003-07-07 15:06:11 +00:00
Andrew Cagney
781a750d29 2003-06-11 Andrew Cagney <cagney@redhat.com>
* gdbarch.sh (DEPRECATED_REGISTER_CONVERTIBLE): Deprecate
	REGISTER_CONVERTIBLE.
	(DEPRECATED_REGISTER_CONVERT_TO_VIRTUAL): Same.
	(DEPRECATED_REGISTER_CONVERT_TO_RAW): Same, make "from" constant.
	* gdbarch.h, gdbarch.c: Re-generate.
	* arch-utils.h (deprecated_register_convertible_not): Rename
	generic_register_convertible_not.
	* arch-utils.c (deprecated_register_convertible_not): Rename
	generic_register_convertible.
	(legacy_convert_register_p, legacy_register_to_value): Update.
	* sh-tdep.c (sh64_push_arguments): Update.
	* m68klinux-tdep.c (m68k_linux_extract_return_value): Update.
	* config/m68k/tm-delta68.h (DEPRECATED_EXTRACT_RETURN_VALUE): Update.
	* m68klinux-tdep.c (m68k_linux_store_return_value): Update.
	* config/m68k/tm-delta68.h (DEPRECATED_STORE_RETURN_VALUE): Update.
	* arch-utils.c (legacy_value_to_register): Update.
	* rs6000-tdep.c (rs6000_gdbarch_init): Update.
	(rs6000_register_convert_to_raw): Make parameter "from" const.
	* mips-tdep.c (mips_gdbarch_init): Update.
	(mips_register_convert_to_raw): Make  parameter"virt_buf" const.
	* infcmd.c (default_print_registers_info): Update.
	* ia64-tdep.c (ia64_gdbarch_init): Update.
	(ia64_register_convert_to_raw): Make parameter "from" const.
	* i386-tdep.c (i386_gdbarch_init): Update.
	(i386_register_convert_to_raw): Update.
2003-06-11 19:38:27 +00:00
Andreas Schwab
eb2e12d711 * m68k-tdep.c (m68k_register_raw_size): Remove cast.
(m68k_register_virtual_size): Likewise.
	(altos_skip_prologue): Remove obsolete function.
	(isi_frame_num_args): Likewise.
	(news_frame_num_args): Likewise.
	(m68k_fix_call_dummy): Make static.
	(m68k_push_dummy_frame): Likewise.
	(m68k_pop_frame): Likewise.
	(m68k_skip_prologue): Likewise.
	(m68k_frame_init_saved_regs): Likewise.
	(m68k_saved_pc_after_call): Likewise.
	(m68k_get_longjmp_target): Make multi-arch.
	(m68k_gdbarch_init): Allocate and initialize gdbarch_tdep
	structure.  Register m68k_get_longjmp_target if enabled.
	* m68k-tdep.h (struct gdbarch_tdep): Define.
	* config/m68k/tm-m68k.h: Don't include "regcache.h".

	* Makefile.in (config.status): Also depend on configure.tgt
	and configure.host.
	(m68klinux-tdep.o): Update dependencies.
	* configure.tgt (m68*-*-linux*): Set gdb_multi_arch to 1.
	* m68klinux-tdep.c (M68K_LINUX_JB_ELEMENT_SIZE): Define.
	(M68K_LINUX_JB_PC): Define.
	(m68k_linux_pc_in_sigtramp): Renamed from m68k_linux_in_sigtramp
	and take additional parameter.
	(m68k_linux_sigtramp_saved_pc): Update.
	(m68k_linux_init_abi): Set jb_pc and jb_elt_size.  Register
	m68k_linux_pc_in_sigtramp, in_plt_section,
	find_solib_trampoline_target.
	* config/m68k/tm-linux.h: Don't include any tm headers.
	(START_INFERIOR_TRAPS_EXPECTED): Remove definition.
	(JB_ELEMENT_SIZE): Likewise.
	(JB_PC): Likewise.
	(GET_LONGJMP_TARGET): Likewise.
	(IN_SIGTRAMP): Likewise.
	(SVR4_SHARED_LIBS): Define this and include "solib.h".
2003-05-25 18:50:55 +00:00
Andreas Schwab
55809acbfc * Makefile.in (m68k-tdep.o, m68klinux-tdep.o): Update
dependencies.
	* m68k-tdep.c (m68k_gdbarch_init): Call gdbarch_init_osabi at the
	end.
	* m68klinux-tdep.c (m68k_linux_init_abi): New function.
	(_initialize_m68k_linux_tdep): New function.
	(m68k_linux_frame_saved_pc): Make static.
	(m68k_linux_extract_return_value): Likewise.
	(m68k_linux_store_return_value): Likewise.
	(m68k_linux_extract_struct_value_address): Likewise.
	* config/m68k/tm-linux.h (DEPRECATED_EXTRACT_RETURN_VALUE):
	Remove.
	(DEPRECATED_STORE_RETURN_VALUE): Remove.
	(DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS): Remove.
	(DEPRECATED_FRAME_SAVED_PC): Remove.
2003-05-20 23:44:23 +00:00
Andreas Schwab
d0b45d99e8 * Makefile (m68klinux-nat.o, m68klinux-tdep.o): Update
dependencies.
	* config/m68k/tm-linux.h (DEPRECATED_EXTRACT_RETURN_VALUE): Define
	as m68k_linux_extract_return_value.
	(DEPRECATED_STORE_RETURN_VALUE): Define as
	m68k_linux_store_return_value.
	(DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS): Define as
	m68k_linux_extract_struct_value_address.
	* m68klinux-tdep.c (m68k_linux_sigtramp_saved_pc): Use
	get_next_frame, get_frame_base, get_frame_pc.
	(m68k_linux_frame_saved_pc): Use get_frame_base.
	(m68k_linux_extract_return_value): New function.
	(m68k_linux_store_return_value): New function.
	(m68k_linux_extract_struct_value_address): New function.
	* config/m68k/tm-m68k.h: Declare m68k_get_longjmp_target.
2003-05-18 21:10:11 +00:00
Andreas Schwab
b5fc49aa64 * m68k-tdep.c (m68k_frame_chain, m68k_frame_saved_pc)
(altos_skip_prologue, delta68_frame_saved_pc, isi_frame_num_args)
	(delta68_frame_num_args, news_frame_num_args, m68k_skip_prologue)
	(m68k_frame_init_saved_regs, m68k_saved_pc_after_call): Use
	read_memory_unsigned_integer instead of read_memory_integer when
	dealing with addresses and instruction opcodes.
	* m68klinux-tdep.c (m68k_linux_sigtramp_saved_pc)
	(m68k_linux_frame_saved_pc): Likewise.
2002-11-29 19:33:17 +00:00
Andreas Schwab
0a59580323 * m68klinux-nat.c (IS_SIGTRAMP, IS_RT_SIGTRAMP)
(m68k_linux_in_sigtramp, SIGCONTEXT_PC_OFFSET)
	(UCONTEXT_PC_OFFSET, m68k_linux_sigtramp_saved_pc)
	(m68k_linux_frame_saved_pc): Move to ...
	* m68klinux-tdep.c: ... here.  New file.
	* Makefile.in (m68klinux-tdep.o): Add dependencies.
	* config/m68k/linux.mt (TDEPFILES): Add m68klinux-tdep.o.
2002-11-19 23:14:45 +00:00