* 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:
parent
9c9532c936
commit
39bbf76177
3 changed files with 53 additions and 15 deletions
|
@ -1,3 +1,17 @@
|
||||||
|
2002-02-08 Richard Earnshaw <rearnsha@arm.com>
|
||||||
|
|
||||||
|
* 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.
|
||||||
|
|
||||||
2002-02-08 Andrew Cagney <ac131313@redhat.com>
|
2002-02-08 Andrew Cagney <ac131313@redhat.com>
|
||||||
Corinna Vinschen <vinschen@redhat.com>
|
Corinna Vinschen <vinschen@redhat.com>
|
||||||
|
|
||||||
|
|
|
@ -235,7 +235,7 @@ arm_use_struct_convention (int gcc_p, struct type *type)
|
||||||
return nRc;
|
return nRc;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
static int
|
||||||
arm_frame_chain_valid (CORE_ADDR chain, struct frame_info *thisframe)
|
arm_frame_chain_valid (CORE_ADDR chain, struct frame_info *thisframe)
|
||||||
{
|
{
|
||||||
return (chain != 0 && (FRAME_SAVED_PC (thisframe) >= LOWEST_PC));
|
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
|
variant of the APCS. It passes any floating point arguments in the
|
||||||
general registers and/or on the stack. */
|
general registers and/or on the stack. */
|
||||||
|
|
||||||
CORE_ADDR
|
static CORE_ADDR
|
||||||
arm_push_arguments (int nargs, struct value **args, CORE_ADDR sp,
|
arm_push_arguments (int nargs, struct value **args, CORE_ADDR sp,
|
||||||
int struct_return, CORE_ADDR struct_addr)
|
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);
|
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
|
void
|
||||||
_initialize_arm_tdep (void)
|
_initialize_arm_tdep (void)
|
||||||
{
|
{
|
||||||
|
@ -2353,6 +2382,9 @@ _initialize_arm_tdep (void)
|
||||||
int numregs, i, j;
|
int numregs, i, j;
|
||||||
static char *helptext;
|
static char *helptext;
|
||||||
|
|
||||||
|
if (GDB_MULTI_ARCH)
|
||||||
|
register_gdbarch_init (bfd_arch_arm, arm_gdbarch_init);
|
||||||
|
|
||||||
tm_print_insn = gdb_print_insn_arm;
|
tm_print_insn = gdb_print_insn_arm;
|
||||||
|
|
||||||
/* Get the number of possible sets of register names defined in opcodes. */
|
/* Get the number of possible sets of register names defined in opcodes. */
|
||||||
|
|
|
@ -22,6 +22,10 @@
|
||||||
#ifndef TM_ARM_H
|
#ifndef TM_ARM_H
|
||||||
#define TM_ARM_H
|
#define TM_ARM_H
|
||||||
|
|
||||||
|
#ifndef GDB_MULTI_ARCH
|
||||||
|
#define GDB_MULTI_ARCH 1
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "regcache.h"
|
#include "regcache.h"
|
||||||
#include "floatformat.h"
|
#include "floatformat.h"
|
||||||
|
|
||||||
|
@ -30,7 +34,7 @@ struct type;
|
||||||
struct value;
|
struct value;
|
||||||
|
|
||||||
/* IEEE format floating point. */
|
/* IEEE format floating point. */
|
||||||
#define TARGET_DOUBLE_FORMAT (target_byte_order == BFD_ENDIAN_BIG \
|
#define TARGET_DOUBLE_FORMAT (TARGET_BYTE_ORDER == BFD_ENDIAN_BIG \
|
||||||
? &floatformat_ieee_double_big \
|
? &floatformat_ieee_double_big \
|
||||||
: &floatformat_ieee_double_littlebyte_bigword)
|
: &floatformat_ieee_double_littlebyte_bigword)
|
||||||
|
|
||||||
|
@ -324,10 +328,6 @@ CORE_ADDR arm_target_read_fp (void);
|
||||||
CORE_ADDR arm_frame_chain (struct frame_info *);
|
CORE_ADDR arm_frame_chain (struct frame_info *);
|
||||||
#define FRAME_CHAIN(thisframe) arm_frame_chain (thisframe)
|
#define FRAME_CHAIN(thisframe) arm_frame_chain (thisframe)
|
||||||
|
|
||||||
int arm_frame_chain_valid (CORE_ADDR, struct frame_info *);
|
|
||||||
#define FRAME_CHAIN_VALID(chain, thisframe) \
|
|
||||||
arm_frame_chain_valid (chain, thisframe)
|
|
||||||
|
|
||||||
/* Define other aspects of the stack frame. */
|
/* Define other aspects of the stack frame. */
|
||||||
|
|
||||||
int arm_frameless_function_invocation (struct frame_info *fi);
|
int arm_frameless_function_invocation (struct frame_info *fi);
|
||||||
|
@ -359,12 +359,6 @@ void arm_frame_init_saved_regs (struct frame_info *);
|
||||||
#define FRAME_INIT_SAVED_REGS(frame_info) \
|
#define FRAME_INIT_SAVED_REGS(frame_info) \
|
||||||
arm_frame_init_saved_regs (frame_info);
|
arm_frame_init_saved_regs (frame_info);
|
||||||
|
|
||||||
/* Things needed for making the inferior call functions. */
|
|
||||||
|
|
||||||
CORE_ADDR arm_push_arguments (int, struct value **, CORE_ADDR, int, CORE_ADDR);
|
|
||||||
#define PUSH_ARGUMENTS(nargs, args, sp, struct_return, struct_addr) \
|
|
||||||
arm_push_arguments ((nargs), (args), (sp), (struct_return), (struct_addr))
|
|
||||||
|
|
||||||
/* Push an empty stack frame, to record the current PC, etc. */
|
/* Push an empty stack frame, to record the current PC, etc. */
|
||||||
|
|
||||||
void arm_push_dummy_frame (void);
|
void arm_push_dummy_frame (void);
|
||||||
|
@ -377,8 +371,6 @@ void arm_pop_frame (void);
|
||||||
|
|
||||||
#define POP_FRAME arm_pop_frame ()
|
#define POP_FRAME arm_pop_frame ()
|
||||||
|
|
||||||
#define CALL_DUMMY_P (1)
|
|
||||||
|
|
||||||
#define CALL_DUMMY_WORDS arm_call_dummy_words
|
#define CALL_DUMMY_WORDS arm_call_dummy_words
|
||||||
extern LONGEST arm_call_dummy_words[];
|
extern LONGEST arm_call_dummy_words[];
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue