forked from Imagelibrary/binutils-gdb
2002-08-20 Michael Snyder <msnyder@redhat.com>
* mips-tdep.c (MSYMBOL_IS_SPECIAL, MSYMBOL_SIZE): These are only used locally, so move them from the target machine header to here. (mips_set_processor_type, mips_register_name, mips32_next_pc, mips16_next_pc, cached_proc_desc, mips_set_processor_type): Make static. * config/mips/tm-mips.h (MSYMBOL_IS_SPECIAL, MSYMBOL_SIZE): Delete.
This commit is contained in:
@@ -1,3 +1,12 @@
|
||||
2002-08-20 Michael Snyder <msnyder@redhat.com>
|
||||
|
||||
* mips-tdep.c (MSYMBOL_IS_SPECIAL, MSYMBOL_SIZE): These are only
|
||||
used locally, so move them from the target machine header to here.
|
||||
(mips_set_processor_type, mips_register_name, mips32_next_pc,
|
||||
mips16_next_pc, cached_proc_desc, mips_set_processor_type):
|
||||
Make static.
|
||||
* config/mips/tm-mips.h (MSYMBOL_IS_SPECIAL, MSYMBOL_SIZE): Delete.
|
||||
|
||||
2002-08-20 Andrew Cagney <cagney@redhat.com>
|
||||
|
||||
* NEWS: Mention that the Apollo line was made obsolete.
|
||||
|
||||
@@ -209,7 +209,6 @@ extern struct frame_info *setup_arbitrary_frame (int, CORE_ADDR *);
|
||||
|
||||
#define TM_PRINT_INSN_MACH 0
|
||||
|
||||
|
||||
/* These are defined in mdebugread.c and are used in mips-tdep.c */
|
||||
extern CORE_ADDR sigtramp_address, sigtramp_end;
|
||||
extern void fixup_sigtramp (void);
|
||||
@@ -239,33 +238,8 @@ typedef unsigned long t_inst; /* Integer big enough to hold an instruction */
|
||||
|
||||
#endif /* TM_MIPS_H */
|
||||
|
||||
/* Macros for setting and testing a bit in a minimal symbol that
|
||||
marks it as 16-bit function. The MSB of the minimal symbol's
|
||||
"info" field is used for this purpose. This field is already
|
||||
being used to store the symbol size, so the assumption is
|
||||
that the symbol size cannot exceed 2^31.
|
||||
|
||||
ELF_MAKE_MSYMBOL_SPECIAL
|
||||
tests whether an ELF symbol is "special", i.e. refers
|
||||
to a 16-bit function, and sets a "special" bit in a
|
||||
minimal symbol to mark it as a 16-bit function
|
||||
MSYMBOL_IS_SPECIAL tests the "special" bit in a minimal symbol
|
||||
MSYMBOL_SIZE returns the size of the minimal symbol, i.e.
|
||||
the "info" field with the "special" bit masked out
|
||||
*/
|
||||
|
||||
#define MSYMBOL_IS_SPECIAL(msym) \
|
||||
mips_msymbol_is_special (msym)
|
||||
#define MSYMBOL_SIZE(msym) \
|
||||
mips_msymbol_size (msym)
|
||||
struct minimal_symbol;
|
||||
extern int mips_msymbol_is_special (struct minimal_symbol *msym);
|
||||
extern long mips_msymbol_size (struct minimal_symbol *msym);
|
||||
|
||||
|
||||
/* Command to set the processor type. */
|
||||
extern void mips_set_processor_type_command (char *, int);
|
||||
|
||||
|
||||
/* Single step based on where the current instruction will take us. */
|
||||
extern void mips_software_single_step (enum target_signal, int);
|
||||
|
||||
@@ -173,6 +173,36 @@ mips_saved_regsize (void)
|
||||
return 4;
|
||||
}
|
||||
|
||||
/* Macros for setting and testing a bit in a minimal symbol that
|
||||
marks it as 16-bit function. The MSB of the minimal symbol's
|
||||
"info" field is used for this purpose. This field is already
|
||||
being used to store the symbol size, so the assumption is
|
||||
that the symbol size cannot exceed 2^31.
|
||||
|
||||
ELF_MAKE_MSYMBOL_SPECIAL tests whether an ELF symbol is "special",
|
||||
i.e. refers to a 16-bit function, and sets a "special" bit in a
|
||||
minimal symbol to mark it as a 16-bit function
|
||||
|
||||
MSYMBOL_IS_SPECIAL tests the "special" bit in a minimal symbol
|
||||
MSYMBOL_SIZE returns the size of the minimal symbol, i.e.
|
||||
the "info" field with the "special" bit masked out */
|
||||
|
||||
#define MSYMBOL_IS_SPECIAL(msym) \
|
||||
(((long) MSYMBOL_INFO (msym) & 0x80000000) != 0)
|
||||
#define MSYMBOL_SIZE(msym) \
|
||||
((long) MSYMBOL_INFO (msym) & 0x7fffffff)
|
||||
|
||||
static void
|
||||
mips_elf_make_msymbol_special (asymbol *sym, struct minimal_symbol *msym)
|
||||
{
|
||||
if (((elf_symbol_type *)(sym))->internal_elf_sym.st_other == STO_MIPS16)
|
||||
{
|
||||
MSYMBOL_INFO (msym) = (char *)
|
||||
(((long) MSYMBOL_INFO (msym)) | 0x80000000);
|
||||
SYMBOL_VALUE_ADDRESS (msym) |= 1;
|
||||
}
|
||||
}
|
||||
|
||||
/* XFER a value from the big/little/left end of the register.
|
||||
Depending on the size of the value it might occupy the entire
|
||||
register or just part of it. Make an allowance for this, aligning
|
||||
@@ -297,7 +327,7 @@ static CORE_ADDR heuristic_proc_start (CORE_ADDR);
|
||||
|
||||
static CORE_ADDR read_next_frame_reg (struct frame_info *, int);
|
||||
|
||||
int mips_set_processor_type (char *);
|
||||
static int mips_set_processor_type (char *);
|
||||
|
||||
static void mips_show_processor_type_command (char *, int);
|
||||
|
||||
@@ -333,7 +363,7 @@ static struct cmd_list_element *showmipscmdlist = NULL;
|
||||
char *mips_generic_reg_names[] = MIPS_REGISTER_NAMES;
|
||||
char **mips_processor_reg_names = mips_generic_reg_names;
|
||||
|
||||
const char *
|
||||
static const char *
|
||||
mips_register_name (int i)
|
||||
{
|
||||
return mips_processor_reg_names[i];
|
||||
@@ -720,38 +750,6 @@ pc_is_mips16 (bfd_vma memaddr)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* ELF_MAKE_MSYMBOL_SPECIAL tests whether an ELF symbol is "special",
|
||||
i.e. refers to a 16-bit function, and sets a "special" bit in a
|
||||
minimal symbol to mark it as a 16-bit function. */
|
||||
|
||||
static void
|
||||
mips_elf_make_msymbol_special (asymbol *sym, struct minimal_symbol *msym)
|
||||
{
|
||||
if (((elf_symbol_type *)(sym))->internal_elf_sym.st_other == STO_MIPS16)
|
||||
{
|
||||
MSYMBOL_INFO (msym) = (char *)
|
||||
(((long) MSYMBOL_INFO (msym)) | 0x80000000);
|
||||
SYMBOL_VALUE_ADDRESS (msym) |= 1;
|
||||
}
|
||||
}
|
||||
|
||||
/* MSYMBOL_IS_SPECIAL tests the "special" bit in a minimal symbol. */
|
||||
|
||||
int
|
||||
mips_msymbol_is_special (struct minimal_symbol *msym)
|
||||
{
|
||||
return (((long) MSYMBOL_INFO (msym) & 0x80000000) != 0);
|
||||
}
|
||||
|
||||
/* MSYMBOL_SIZE returns the size of the minimal symbol, i.e. the
|
||||
"info" field with the "special" bit masked out. */
|
||||
|
||||
long
|
||||
mips_msymbol_size (struct minimal_symbol *msym)
|
||||
{
|
||||
return ((long) MSYMBOL_INFO (msym) & 0x7fffffff);
|
||||
}
|
||||
|
||||
/* MIPS believes that the PC has a sign extended value. Perhaphs the
|
||||
all registers should be sign extended for simplicity? */
|
||||
|
||||
@@ -915,7 +913,7 @@ mips32_relative_offset (unsigned long inst)
|
||||
|
||||
/* Determine whate to set a single step breakpoint while considering
|
||||
branch prediction */
|
||||
CORE_ADDR
|
||||
static CORE_ADDR
|
||||
mips32_next_pc (CORE_ADDR pc)
|
||||
{
|
||||
unsigned long inst;
|
||||
@@ -1354,7 +1352,7 @@ extended_mips16_next_pc (CORE_ADDR pc,
|
||||
return pc;
|
||||
}
|
||||
|
||||
CORE_ADDR
|
||||
static CORE_ADDR
|
||||
mips16_next_pc (CORE_ADDR pc)
|
||||
{
|
||||
unsigned int insn = fetch_mips_16 (pc);
|
||||
@@ -1676,7 +1674,7 @@ mips_init_frame_pc_first (int fromleaf, struct frame_info *prev)
|
||||
|
||||
pc = ((fromleaf) ? SAVED_PC_AFTER_CALL (prev->next) :
|
||||
prev->next ? FRAME_SAVED_PC (prev->next) : read_pc ());
|
||||
tmp = mips_skip_stub (pc);
|
||||
tmp = SKIP_TRAMPOLINE_CODE (pc);
|
||||
prev->pc = tmp ? tmp : pc;
|
||||
}
|
||||
|
||||
@@ -2391,7 +2389,7 @@ get_frame_pointer (struct frame_info *frame,
|
||||
PROC_FRAME_ADJUST (proc_desc));
|
||||
}
|
||||
|
||||
mips_extra_func_info_t cached_proc_desc;
|
||||
static mips_extra_func_info_t cached_proc_desc;
|
||||
|
||||
static CORE_ADDR
|
||||
mips_frame_chain (struct frame_info *frame)
|
||||
@@ -2405,7 +2403,7 @@ mips_frame_chain (struct frame_info *frame)
|
||||
|
||||
/* Check if the PC is inside a call stub. If it is, fetch the
|
||||
PC of the caller of that stub. */
|
||||
if ((tmp = mips_skip_stub (saved_pc)) != 0)
|
||||
if ((tmp = SKIP_TRAMPOLINE_CODE (saved_pc)) != 0)
|
||||
saved_pc = tmp;
|
||||
|
||||
/* Look up the procedure descriptor for this PC. */
|
||||
@@ -5035,7 +5033,7 @@ mips_show_processor_type_command (char *args, int from_tty)
|
||||
|
||||
/* Modify the actual processor type. */
|
||||
|
||||
int
|
||||
static int
|
||||
mips_set_processor_type (char *str)
|
||||
{
|
||||
int i;
|
||||
|
||||
Reference in New Issue
Block a user