mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-12-28 10:00:51 +00:00
* arm-tdep.c (arm_frame_chain_valid): Make static.
(arm_push_arguments): Likewise. (arm_gdbarch_init): New function. (_initialize_arm_tdep): Call it. * config/arm/tm-arm.h (GDB_MULTI_ARCH): Set to 1. (TARGET_DOUBLE_FORMAT): Test TARGET_BYTE_ORDER, not target_byte_order. (FRAME_CHAIN_VALID): Delete. (arm_frame_chain_valid): Delete declaration. (PUSH_ARGUMENTS): Delete. (arm_push_arguments): Delete declaration. (CALL_DUMMY_P): Delete.
This commit is contained in:
@@ -235,7 +235,7 @@ arm_use_struct_convention (int gcc_p, struct type *type)
|
||||
return nRc;
|
||||
}
|
||||
|
||||
int
|
||||
static int
|
||||
arm_frame_chain_valid (CORE_ADDR chain, struct frame_info *thisframe)
|
||||
{
|
||||
return (chain != 0 && (FRAME_SAVED_PC (thisframe) >= LOWEST_PC));
|
||||
@@ -1417,7 +1417,7 @@ arm_call_dummy_breakpoint_offset (void)
|
||||
variant of the APCS. It passes any floating point arguments in the
|
||||
general registers and/or on the stack. */
|
||||
|
||||
CORE_ADDR
|
||||
static CORE_ADDR
|
||||
arm_push_arguments (int nargs, struct value **args, CORE_ADDR sp,
|
||||
int struct_return, CORE_ADDR struct_addr)
|
||||
{
|
||||
@@ -2341,6 +2341,35 @@ arm_coff_make_msymbol_special(int val, struct minimal_symbol *msym)
|
||||
MSYMBOL_SET_SPECIAL (msym);
|
||||
}
|
||||
|
||||
static struct gdbarch *
|
||||
arm_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||
{
|
||||
struct gdbarch *gdbarch;
|
||||
|
||||
if (arches != NULL)
|
||||
return arches->gdbarch;
|
||||
|
||||
/* XXX We'll probably need to set the tdep field soon. */
|
||||
gdbarch = gdbarch_alloc (&info, NULL);
|
||||
|
||||
set_gdbarch_use_generic_dummy_frames (gdbarch, 0);
|
||||
|
||||
/* Call dummy code. */
|
||||
set_gdbarch_call_dummy_location (gdbarch, ON_STACK);
|
||||
set_gdbarch_call_dummy_breakpoint_offset_p (gdbarch, 1);
|
||||
set_gdbarch_call_dummy_p (gdbarch, 1);
|
||||
set_gdbarch_call_dummy_stack_adjust_p (gdbarch, 0);
|
||||
|
||||
set_gdbarch_pc_in_call_dummy (gdbarch, pc_in_call_dummy_on_stack);
|
||||
|
||||
set_gdbarch_get_saved_register (gdbarch, generic_get_saved_register);
|
||||
set_gdbarch_push_arguments (gdbarch, arm_push_arguments);
|
||||
|
||||
set_gdbarch_frame_chain_valid (gdbarch, arm_frame_chain_valid);
|
||||
|
||||
return gdbarch;
|
||||
}
|
||||
|
||||
void
|
||||
_initialize_arm_tdep (void)
|
||||
{
|
||||
@@ -2353,6 +2382,9 @@ _initialize_arm_tdep (void)
|
||||
int numregs, i, j;
|
||||
static char *helptext;
|
||||
|
||||
if (GDB_MULTI_ARCH)
|
||||
register_gdbarch_init (bfd_arch_arm, arm_gdbarch_init);
|
||||
|
||||
tm_print_insn = gdb_print_insn_arm;
|
||||
|
||||
/* Get the number of possible sets of register names defined in opcodes. */
|
||||
|
||||
Reference in New Issue
Block a user