2002-10-24 Michal Ludvig <mludvig@suse.cz>

* dwarf2cfi.c (struct context)
	(struct context_reg): Moved to dwarf2cfi.h
	(context_alloc, frame_state_alloc, context_cpy):
	Made extern instead of static, removed prototypes.
	* dwarf2cfi.h (struct context)
	(struct context_reg): New, moved from dwarf2cfi.c
	(context_alloc, frame_state_alloc, context_cpy):
	New prototypes.
	* x86-64-linux-tdep.c (x86_64_linux_sigtramp_saved_pc):
	Changed from static to extern.
	(LINUX_SIGINFO_SIZE, LINUX_SIGCONTEXT_PC_OFFSET)
	(LINUX_SIGCONTEXT_FP_OFFSET)
	(LINUX_UCONTEXT_SIGCONTEXT_OFFSET): Adjusted.
	(x86_64_linux_in_sigtramp, x86_64_linux_frame_chain)
	(x86_64_init_frame_pc, x86_64_init_extra_frame_info): New.
	* x86-64-tdep.c (x86_64_gdbarch_init): Several
	set_gdbarch_*() calls now use x86-64 specific functions
	instead of DWARF2 CFI ones.
	* x86-64-tdep.h (x86_64_linux_in_sigtramp)
	(x86_64_linux_frame_chain, x86_64_init_frame_pc)
	(x86_64_init_extra_frame_info): New prototypes.
This commit is contained in:
Michal Ludvig
2002-10-24 01:27:43 +00:00
parent c38da1aff1
commit baed091b2b
6 changed files with 145 additions and 53 deletions

View File

@@ -90,37 +90,6 @@ struct fde_array
int array_size;
};
struct context_reg
{
union
{
unsigned int reg;
long offset;
CORE_ADDR addr;
}
loc;
enum
{
REG_CTX_UNSAVED,
REG_CTX_SAVED_OFFSET,
REG_CTX_SAVED_REG,
REG_CTX_SAVED_ADDR,
REG_CTX_VALUE,
}
how;
};
/* This is the register and unwind state for a particular frame. */
struct context
{
struct context_reg *reg;
CORE_ADDR cfa;
CORE_ADDR ra;
void *lsda;
int args_size;
};
struct frame_state_reg
{
union
@@ -208,11 +177,8 @@ static struct fde_unit *fde_unit_alloc (void);
static struct cie_unit *cie_unit_alloc (void);
static void fde_chunks_need_space ();
static struct context *context_alloc ();
static struct frame_state *frame_state_alloc ();
static void unwind_tmp_obstack_init ();
static void unwind_tmp_obstack_free ();
static void context_cpy (struct context *dst, struct context *src);
static unsigned int read_1u (bfd * abfd, char **p);
static int read_1s (bfd * abfd, char **p);
@@ -286,7 +252,7 @@ fde_chunks_need_space (void)
}
/* Alocate a new `struct context' on temporary obstack. */
static struct context *
struct context *
context_alloc (void)
{
struct context *context;
@@ -303,7 +269,7 @@ context_alloc (void)
}
/* Alocate a new `struct frame_state' on temporary obstack. */
static struct frame_state *
struct frame_state *
frame_state_alloc (void)
{
struct frame_state *fs;
@@ -332,7 +298,7 @@ unwind_tmp_obstack_free (void)
unwind_tmp_obstack_init ();
}
static void
void
context_cpy (struct context *dst, struct context *src)
{
int regs_size = sizeof (struct context_reg) * NUM_REGS;