* xcoffread.c (RECORD_MINIMAL_SYMBOL): Update.

(scan_xcoff_symtab): Update.
	* mdebugread.c (record_minimal_symbol): Update.
	(parse_partial_symbols): Update.
	* elfread.c (record_minimal_symbol): Update.
	* dbxread.c (record_minimal_symbol): Update.
	* coffread.c (record_minimal_symbol): Update.
	* sh64-tdep.c (MSYMBOL_IS_SPECIAL): Redefine.
	(sh64_elf_make_msymbol_special): Update.
	* mips-tdep.c (mips_elf_make_msymbol_special): Use
	MSYMBOL_TARGET_FLAG_1.
	(mips_elf_make_msymbol_special): Likewise.
	(msymbol_is_special): Likewise.
	* minsyms.c (prim_record_minimal_symbol_and_info): Update.
	(install_minimal_symbols): Likewise.
	(prim_record_minimal_symbol): Update.
	(prim_record_minimal_symbol_and_info): Remove 'info' argument.
	* m68hc11-tdep.c (MSYMBOL_SET_RTC): Redefine.
	(MSYMBOL_SET_RTI): Redefine.
	(MSYMBOL_IS_RTC): Redefine.
	(MSYMBOL_IS_RTI): Redefine.
	* arm-tdep.c (MSYMBOL_SET_SPECIAL): Redefine.
	(MSYMBOL_IS_SPECIAL): Redefine.
	* symtab.h (struct minimal_symbol) <info>: Remove.
	<target_flag_1, target_flag_2>: New fields.
	(MSYMBOL_INFO): Remove.
	(MSYMBOL_TARGET_FLAG_1): New macro.
	(MSYMBOL_TARGET_FLAG_2): Likewise.
	(prim_record_minimal_symbol_and_info): Update.
This commit is contained in:
Tom Tromey 2008-10-01 16:41:27 +00:00
parent d35e579508
commit b887350fc5
12 changed files with 66 additions and 47 deletions

View File

@ -1,3 +1,35 @@
2008-10-01 Tom Tromey <tromey@redhat.com>
* xcoffread.c (RECORD_MINIMAL_SYMBOL): Update.
(scan_xcoff_symtab): Update.
* mdebugread.c (record_minimal_symbol): Update.
(parse_partial_symbols): Update.
* elfread.c (record_minimal_symbol): Update.
* dbxread.c (record_minimal_symbol): Update.
* coffread.c (record_minimal_symbol): Update.
* sh64-tdep.c (MSYMBOL_IS_SPECIAL): Redefine.
(sh64_elf_make_msymbol_special): Update.
* mips-tdep.c (mips_elf_make_msymbol_special): Use
MSYMBOL_TARGET_FLAG_1.
(mips_elf_make_msymbol_special): Likewise.
(msymbol_is_special): Likewise.
* minsyms.c (prim_record_minimal_symbol_and_info): Update.
(install_minimal_symbols): Likewise.
(prim_record_minimal_symbol): Update.
(prim_record_minimal_symbol_and_info): Remove 'info' argument.
* m68hc11-tdep.c (MSYMBOL_SET_RTC): Redefine.
(MSYMBOL_SET_RTI): Redefine.
(MSYMBOL_IS_RTC): Redefine.
(MSYMBOL_IS_RTI): Redefine.
* arm-tdep.c (MSYMBOL_SET_SPECIAL): Redefine.
(MSYMBOL_IS_SPECIAL): Redefine.
* symtab.h (struct minimal_symbol) <info>: Remove.
<target_flag_1, target_flag_2>: New fields.
(MSYMBOL_INFO): Remove.
(MSYMBOL_TARGET_FLAG_1): New macro.
(MSYMBOL_TARGET_FLAG_2): Likewise.
(prim_record_minimal_symbol_and_info): Update.
2008-09-30 Joel Brobecker <brobecker@adacore.com>
* ada-lang.c (is_digits_suffix): Delete unused function.

View File

@ -63,11 +63,10 @@ static int arm_debug;
MSYMBOL_IS_SPECIAL Tests the "special" bit in a minimal symbol. */
#define MSYMBOL_SET_SPECIAL(msym) \
MSYMBOL_INFO (msym) = (char *) (((long) MSYMBOL_INFO (msym)) \
| 0x80000000)
MSYMBOL_TARGET_FLAG_1 (msym) = 1
#define MSYMBOL_IS_SPECIAL(msym) \
(((long) MSYMBOL_INFO (msym) & 0x80000000) != 0)
MSYMBOL_TARGET_FLAG_1 (msym)
/* Macros for swapping shorts and ints. In the unlikely case that anybody else needs these,
move to a general header. (A better solution might be to define memory read routines that

View File

@ -421,7 +421,7 @@ record_minimal_symbol (struct coff_symbol *cs, CORE_ADDR address,
bfd_section = cs_to_bfd_section (cs, objfile);
return prim_record_minimal_symbol_and_info (cs->c_name, address, type,
NULL, section, bfd_section, objfile);
section, bfd_section, objfile);
}
/* coff_symfile_init ()

View File

@ -514,7 +514,7 @@ record_minimal_symbol (char *name, CORE_ADDR address, int type,
lowest_text_address = address;
prim_record_minimal_symbol_and_info
(name, address, ms_type, NULL, section, bfd_section, objfile);
(name, address, ms_type, section, bfd_section, objfile);
}
/* Scan and build partial symbols for a symbol file.

View File

@ -172,7 +172,7 @@ record_minimal_symbol (char *name, CORE_ADDR address,
address = gdbarch_smash_text_address (gdbarch, address);
return prim_record_minimal_symbol_and_info
(name, address, ms_type, NULL, bfd_section->index, bfd_section, objfile);
(name, address, ms_type, bfd_section->index, bfd_section, objfile);
}
/*

View File

@ -59,18 +59,16 @@
MSYMBOL_IS_RTI Tests the "RTC" bit in a minimal symbol. */
#define MSYMBOL_SET_RTC(msym) \
MSYMBOL_INFO (msym) = (char *) (((long) MSYMBOL_INFO (msym)) \
| 0x80000000)
MSYMBOL_TARGET_FLAG_1 (msym) = 1
#define MSYMBOL_SET_RTI(msym) \
MSYMBOL_INFO (msym) = (char *) (((long) MSYMBOL_INFO (msym)) \
| 0x40000000)
MSYMBOL_TARGET_FLAG_2 (msym) = 1
#define MSYMBOL_IS_RTC(msym) \
(((long) MSYMBOL_INFO (msym) & 0x80000000) != 0)
MSYMBOL_TARGET_FLAG_1 (msym)
#define MSYMBOL_IS_RTI(msym) \
(((long) MSYMBOL_INFO (msym) & 0x40000000) != 0)
MSYMBOL_TARGET_FLAG_2 (msym)
enum insn_return_kind {
RETURN_RTS,

View File

@ -2211,7 +2211,7 @@ record_minimal_symbol (const char *name, const CORE_ADDR address,
bfd_section = NULL;
}
prim_record_minimal_symbol_and_info (name, address, ms_type, NULL,
prim_record_minimal_symbol_and_info (name, address, ms_type,
section, bfd_section, objfile);
}
@ -3340,7 +3340,7 @@ parse_partial_symbols (struct objfile *objfile)
case stStaticProc:
prim_record_minimal_symbol_and_info (name, sh.value,
mst_file_text, NULL,
mst_file_text,
SECT_OFF_TEXT (objfile), NULL,
objfile);
@ -3426,13 +3426,13 @@ parse_partial_symbols (struct objfile *objfile)
case stStatic: /* Variable */
if (SC_IS_DATA (sh.sc))
prim_record_minimal_symbol_and_info (name, sh.value,
mst_file_data, NULL,
mst_file_data,
SECT_OFF_DATA (objfile),
NULL,
objfile);
else
prim_record_minimal_symbol_and_info (name, sh.value,
mst_file_bss, NULL,
mst_file_bss,
SECT_OFF_BSS (objfile),
NULL,
objfile);

View File

@ -725,7 +725,7 @@ prim_record_minimal_symbol (const char *name, CORE_ADDR address,
}
prim_record_minimal_symbol_and_info (name, address, ms_type,
NULL, section, NULL, objfile);
section, NULL, objfile);
}
/* Record a minimal symbol in the msym bunches. Returns the symbol
@ -734,7 +734,7 @@ prim_record_minimal_symbol (const char *name, CORE_ADDR address,
struct minimal_symbol *
prim_record_minimal_symbol_and_info (const char *name, CORE_ADDR address,
enum minimal_symbol_type ms_type,
char *info, int section,
int section,
asection *bfd_section,
struct objfile *objfile)
{
@ -788,8 +788,8 @@ prim_record_minimal_symbol_and_info (const char *name, CORE_ADDR address,
}
MSYMBOL_TYPE (msymbol) = ms_type;
/* FIXME: This info, if it remains, needs its own field. */
MSYMBOL_INFO (msymbol) = info; /* FIXME! */
MSYMBOL_TARGET_FLAG_1 (msymbol) = 0;
MSYMBOL_TARGET_FLAG_2 (msymbol) = 0;
MSYMBOL_SIZE (msymbol) = 0;
/* The hash pointers must be cleared! If they're not,
@ -1061,7 +1061,8 @@ install_minimal_symbols (struct objfile *objfile)
SYMBOL_LINKAGE_NAME (&msymbols[mcount]) = NULL;
SYMBOL_VALUE_ADDRESS (&msymbols[mcount]) = 0;
MSYMBOL_INFO (&msymbols[mcount]) = NULL;
MSYMBOL_TARGET_FLAG_1 (&msymbols[mcount]) = 0;
MSYMBOL_TARGET_FLAG_2 (&msymbols[mcount]) = 0;
MSYMBOL_SIZE (&msymbols[mcount]) = 0;
MSYMBOL_TYPE (&msymbols[mcount]) = mst_unknown;
SYMBOL_INIT_LANGUAGE_SPECIFIC (&msymbols[mcount], language_unknown);

View File

@ -253,8 +253,7 @@ 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);
MSYMBOL_TARGET_FLAG_1 (msym) = 1;
SYMBOL_VALUE_ADDRESS (msym) |= 1;
}
}
@ -262,7 +261,7 @@ mips_elf_make_msymbol_special (asymbol * sym, struct minimal_symbol *msym)
static int
msymbol_is_special (struct minimal_symbol *msym)
{
return (((long) MSYMBOL_INFO (msym) & 0x80000000) != 0);
return MSYMBOL_TARGET_FLAG_1 (msym);
}
/* XFER a value from the big/little/left end of the register.

View File

@ -211,7 +211,7 @@ sh64_register_name (struct gdbarch *gdbarch, int reg_nr)
MSYMBOL_IS_SPECIAL tests the "special" bit in a minimal symbol */
#define MSYMBOL_IS_SPECIAL(msym) \
(((long) MSYMBOL_INFO (msym) & 0x80000000) != 0)
MSYMBOL_TARGET_FLAG_1 (msym)
static void
sh64_elf_make_msymbol_special (asymbol *sym, struct minimal_symbol *msym)
@ -221,7 +221,7 @@ sh64_elf_make_msymbol_special (asymbol *sym, struct minimal_symbol *msym)
if (((elf_symbol_type *)(sym))->internal_elf_sym.st_other == STO_SH5_ISA32)
{
MSYMBOL_INFO (msym) = (char *) (((long) MSYMBOL_INFO (msym)) | 0x80000000);
MSYMBOL_TARGET_FLAG_1 (msym) = 1;
SYMBOL_VALUE_ADDRESS (msym) |= 1;
}
}

View File

@ -319,21 +319,6 @@ struct minimal_symbol
struct general_symbol_info ginfo;
/* The info field is available for caching machine-specific
information so it doesn't have to rederive the info constantly
(over a serial line). It is initialized to zero and stays that
way until target-dependent code sets it. Storage for any data
pointed to by this field should be allocated on the
objfile_obstack for the associated objfile. The type would be
"void *" except for reasons of compatibility with older
compilers. This field is optional.
Currently, the AMD 29000 tdep.c uses it to remember things it has decoded
from the instructions in the function header, and the MIPS-16 code uses
it to identify 16-bit procedures. */
char *info;
/* Size of this symbol. end_psymtab in dbxread.c uses this
information to calculate the end of the partial symtab based on the
address of the last symbol plus the size of the last symbol. */
@ -347,6 +332,10 @@ struct minimal_symbol
ENUM_BITFIELD(minimal_symbol_type) type : 8;
/* Two flag bits provided for the use of the target. */
unsigned int target_flag_1 : 1;
unsigned int target_flag_2 : 1;
/* Minimal symbols with the same hash key are kept on a linked
list. This is the link. */
@ -358,7 +347,8 @@ struct minimal_symbol
struct minimal_symbol *demangled_hash_next;
};
#define MSYMBOL_INFO(msymbol) (msymbol)->info
#define MSYMBOL_TARGET_FLAG_1(msymbol) (msymbol)->target_flag_1
#define MSYMBOL_TARGET_FLAG_2(msymbol) (msymbol)->target_flag_2
#define MSYMBOL_SIZE(msymbol) (msymbol)->size
#define MSYMBOL_TYPE(msymbol) (msymbol)->type
@ -1100,7 +1090,7 @@ extern void prim_record_minimal_symbol (const char *, CORE_ADDR,
extern struct minimal_symbol *prim_record_minimal_symbol_and_info
(const char *, CORE_ADDR,
enum minimal_symbol_type,
char *info, int section, asection * bfd_section, struct objfile *);
int section, asection * bfd_section, struct objfile *);
extern unsigned int msymbol_hash_iw (const char *);

View File

@ -834,7 +834,7 @@ enter_line_range (struct subfile *subfile, unsigned beginoffset, unsigned endoff
namestr = (NAME); \
if (namestr[0] == '.') ++namestr; \
prim_record_minimal_symbol_and_info (namestr, (ADDR), (TYPE), \
(char *)NULL, (SECTION), (asection *)NULL, (OBJFILE)); \
(SECTION), (asection *)NULL, (OBJFILE)); \
misc_func_recorded = 1; \
}
@ -2285,7 +2285,7 @@ scan_xcoff_symtab (struct objfile *objfile)
prim_record_minimal_symbol_and_info
(namestring, symbol.n_value,
sclass == C_HIDEXT ? mst_file_data : mst_data,
NULL, secnum_to_section (symbol.n_scnum, objfile),
secnum_to_section (symbol.n_scnum, objfile),
NULL, objfile);
break;
@ -2360,7 +2360,7 @@ scan_xcoff_symtab (struct objfile *objfile)
prim_record_minimal_symbol_and_info
(namestring, symbol.n_value,
sclass == C_HIDEXT ? mst_file_data : mst_data,
NULL, secnum_to_section (symbol.n_scnum, objfile),
secnum_to_section (symbol.n_scnum, objfile),
NULL, objfile);
break;
}
@ -2377,7 +2377,7 @@ scan_xcoff_symtab (struct objfile *objfile)
prim_record_minimal_symbol_and_info
(namestring, symbol.n_value,
sclass == C_HIDEXT ? mst_file_bss : mst_bss,
NULL, secnum_to_section (symbol.n_scnum, objfile),
secnum_to_section (symbol.n_scnum, objfile),
NULL, objfile);
break;
}