* symtab.h (enum address_class): Remove LOC_BASEREG and

LOC_BASEREG_ARG.
	(struct symbol): Remove "basereg" member of "aux_value" union.
	(SYMBOL_BASEREG): Remove.

	* ada-exp.y (select_possible_type_sym): Do not handle LOC_BASEREG
	or LOC_BASEREG_ARG.
	* ada-lang.c (resolve_subexp, symtab_for_sym): Likewise.
	(ada_add_block_symbols): Likewise.
	* ax-gdb.c (gen_var_ref): Likewise.
	* buildsym.c (finish_block): Likewise.
	* findvar.c (symbol_read_needs_frame, read_var_value): Likewise.
	* m2-exp.y (yylex): Likewise.
	* mi/mi-cmd-stack.c (list_args_or_locals): Likewise.
	* printcmd.c (address_info): Likewise.
	* stack.c (print_frame_args, print_block_frame_locals): Likewise.
	(print_frame_arg_vars): Likewise.
	* symmisc.c (print_symbol): Likewise.
	* symtab.c (lookup_block_symbol): Likewise.
	* tracepoint.c (collect_symbol, add_local_symbols): Likewise.
	(scope_info): Likewise.
This commit is contained in:
Ulrich Weigand 2008-05-22 17:00:07 +00:00
parent aa59ba6b27
commit c3b22bd09c
14 changed files with 24 additions and 115 deletions

View file

@ -1,3 +1,27 @@
2008-05-22 Ulrich Weigand <uweigand@de.ibm.com>
* symtab.h (enum address_class): Remove LOC_BASEREG and
LOC_BASEREG_ARG.
(struct symbol): Remove "basereg" member of "aux_value" union.
(SYMBOL_BASEREG): Remove.
* ada-exp.y (select_possible_type_sym): Do not handle LOC_BASEREG
or LOC_BASEREG_ARG.
* ada-lang.c (resolve_subexp, symtab_for_sym): Likewise.
(ada_add_block_symbols): Likewise.
* ax-gdb.c (gen_var_ref): Likewise.
* buildsym.c (finish_block): Likewise.
* findvar.c (symbol_read_needs_frame, read_var_value): Likewise.
* m2-exp.y (yylex): Likewise.
* mi/mi-cmd-stack.c (list_args_or_locals): Likewise.
* printcmd.c (address_info): Likewise.
* stack.c (print_frame_args, print_block_frame_locals): Likewise.
(print_frame_arg_vars): Likewise.
* symmisc.c (print_symbol): Likewise.
* symtab.c (lookup_block_symbol): Likewise.
* tracepoint.c (collect_symbol, add_local_symbols): Likewise.
(scope_info): Likewise.
2008-05-22 Ulrich Weigand <uweigand@de.ibm.com> 2008-05-22 Ulrich Weigand <uweigand@de.ibm.com>
* symtab.h (enum address_class): Remove LOC_LOCAL_ARG. * symtab.h (enum address_class): Remove LOC_LOCAL_ARG.

View file

@ -1059,8 +1059,6 @@ select_possible_type_sym (struct ada_symbol_info *syms, int nsyms)
case LOC_REGPARM: case LOC_REGPARM:
case LOC_REGPARM_ADDR: case LOC_REGPARM_ADDR:
case LOC_LOCAL: case LOC_LOCAL:
case LOC_BASEREG:
case LOC_BASEREG_ARG:
case LOC_COMPUTED: case LOC_COMPUTED:
case LOC_COMPUTED_ARG: case LOC_COMPUTED_ARG:
return NULL; return NULL;

View file

@ -2893,8 +2893,6 @@ resolve_subexp (struct expression **expp, int *pos, int deprocedure_p,
case LOC_REGPARM: case LOC_REGPARM:
case LOC_REGPARM_ADDR: case LOC_REGPARM_ADDR:
case LOC_LOCAL: case LOC_LOCAL:
case LOC_BASEREG:
case LOC_BASEREG_ARG:
case LOC_COMPUTED: case LOC_COMPUTED:
case LOC_COMPUTED_ARG: case LOC_COMPUTED_ARG:
goto FoundNonType; goto FoundNonType;
@ -4321,8 +4319,6 @@ symtab_for_sym (struct symbol *sym)
case LOC_REGPARM_ADDR: case LOC_REGPARM_ADDR:
case LOC_LOCAL: case LOC_LOCAL:
case LOC_TYPEDEF: case LOC_TYPEDEF:
case LOC_BASEREG:
case LOC_BASEREG_ARG:
case LOC_COMPUTED: case LOC_COMPUTED:
case LOC_COMPUTED_ARG: case LOC_COMPUTED_ARG:
for (j = FIRST_LOCAL_BLOCK; for (j = FIRST_LOCAL_BLOCK;
@ -5223,7 +5219,6 @@ ada_add_block_symbols (struct obstack *obstackp,
case LOC_REF_ARG: case LOC_REF_ARG:
case LOC_REGPARM: case LOC_REGPARM:
case LOC_REGPARM_ADDR: case LOC_REGPARM_ADDR:
case LOC_BASEREG_ARG:
case LOC_COMPUTED_ARG: case LOC_COMPUTED_ARG:
arg_sym = sym; arg_sym = sym;
break; break;
@ -5256,7 +5251,6 @@ ada_add_block_symbols (struct obstack *obstackp,
case LOC_REF_ARG: case LOC_REF_ARG:
case LOC_REGPARM: case LOC_REGPARM:
case LOC_REGPARM_ADDR: case LOC_REGPARM_ADDR:
case LOC_BASEREG_ARG:
case LOC_COMPUTED_ARG: case LOC_COMPUTED_ARG:
arg_sym = sym; arg_sym = sym;
break; break;
@ -5311,7 +5305,6 @@ ada_add_block_symbols (struct obstack *obstackp,
case LOC_REF_ARG: case LOC_REF_ARG:
case LOC_REGPARM: case LOC_REGPARM:
case LOC_REGPARM_ADDR: case LOC_REGPARM_ADDR:
case LOC_BASEREG_ARG:
case LOC_COMPUTED_ARG: case LOC_COMPUTED_ARG:
arg_sym = sym; arg_sym = sym;
break; break;

View file

@ -569,13 +569,6 @@ gen_var_ref (struct agent_expr *ax, struct axs_value *value, struct symbol *var)
value->kind = axs_lvalue_memory; value->kind = axs_lvalue_memory;
break; break;
case LOC_BASEREG: /* relative to some base register */
case LOC_BASEREG_ARG:
ax_reg (ax, SYMBOL_BASEREG (var));
gen_sym_offset (ax, var);
value->kind = axs_lvalue_memory;
break;
case LOC_TYPEDEF: case LOC_TYPEDEF:
error (_("Cannot compute value of typedef `%s'."), error (_("Cannot compute value of typedef `%s'."),
SYMBOL_PRINT_NAME (var)); SYMBOL_PRINT_NAME (var));

View file

@ -289,7 +289,6 @@ finish_block (struct symbol *symbol, struct pending **listhead,
case LOC_REF_ARG: case LOC_REF_ARG:
case LOC_REGPARM: case LOC_REGPARM:
case LOC_REGPARM_ADDR: case LOC_REGPARM_ADDR:
case LOC_BASEREG_ARG:
case LOC_COMPUTED_ARG: case LOC_COMPUTED_ARG:
nparams++; nparams++;
break; break;
@ -302,7 +301,6 @@ finish_block (struct symbol *symbol, struct pending **listhead,
case LOC_LABEL: case LOC_LABEL:
case LOC_BLOCK: case LOC_BLOCK:
case LOC_CONST_BYTES: case LOC_CONST_BYTES:
case LOC_BASEREG:
case LOC_UNRESOLVED: case LOC_UNRESOLVED:
case LOC_OPTIMIZED_OUT: case LOC_OPTIMIZED_OUT:
case LOC_COMPUTED: case LOC_COMPUTED:
@ -328,7 +326,6 @@ finish_block (struct symbol *symbol, struct pending **listhead,
case LOC_REF_ARG: case LOC_REF_ARG:
case LOC_REGPARM: case LOC_REGPARM:
case LOC_REGPARM_ADDR: case LOC_REGPARM_ADDR:
case LOC_BASEREG_ARG:
case LOC_COMPUTED_ARG: case LOC_COMPUTED_ARG:
TYPE_FIELD_TYPE (ftype, iparams) = SYMBOL_TYPE (sym); TYPE_FIELD_TYPE (ftype, iparams) = SYMBOL_TYPE (sym);
TYPE_FIELD_ARTIFICIAL (ftype, iparams) = 0; TYPE_FIELD_ARTIFICIAL (ftype, iparams) = 0;
@ -343,7 +340,6 @@ finish_block (struct symbol *symbol, struct pending **listhead,
case LOC_LABEL: case LOC_LABEL:
case LOC_BLOCK: case LOC_BLOCK:
case LOC_CONST_BYTES: case LOC_CONST_BYTES:
case LOC_BASEREG:
case LOC_UNRESOLVED: case LOC_UNRESOLVED:
case LOC_OPTIMIZED_OUT: case LOC_OPTIMIZED_OUT:
case LOC_COMPUTED: case LOC_COMPUTED:

View file

@ -359,8 +359,6 @@ symbol_read_needs_frame (struct symbol *sym)
case LOC_REGPARM: case LOC_REGPARM:
case LOC_REGPARM_ADDR: case LOC_REGPARM_ADDR:
case LOC_LOCAL: case LOC_LOCAL:
case LOC_BASEREG:
case LOC_BASEREG_ARG:
return 1; return 1;
case LOC_UNDEF: case LOC_UNDEF:
@ -485,20 +483,6 @@ read_var_value (struct symbol *var, struct frame_info *frame)
addr += SYMBOL_VALUE (var); addr += SYMBOL_VALUE (var);
break; break;
case LOC_BASEREG:
case LOC_BASEREG_ARG:
{
struct value *regval;
regval = value_from_register (lookup_pointer_type (type),
SYMBOL_BASEREG (var), frame);
if (regval == NULL)
error (_("Value of base register not available."));
addr = value_as_address (regval);
addr += SYMBOL_VALUE (var);
break;
}
case LOC_TYPEDEF: case LOC_TYPEDEF:
error (_("Cannot look up value of a typedef")); error (_("Cannot look up value of a typedef"));
break; break;

View file

@ -1044,8 +1044,6 @@ yylex ()
case LOC_REGPARM: case LOC_REGPARM:
case LOC_REGPARM_ADDR: case LOC_REGPARM_ADDR:
case LOC_LOCAL: case LOC_LOCAL:
case LOC_BASEREG:
case LOC_BASEREG_ARG:
case LOC_CONST: case LOC_CONST:
case LOC_CONST_BYTES: case LOC_CONST_BYTES:
case LOC_OPTIMIZED_OUT: case LOC_OPTIMIZED_OUT:

View file

@ -254,14 +254,12 @@ list_args_or_locals (int locals, int values, struct frame_info *fi)
case LOC_REF_ARG: /* reference arg */ case LOC_REF_ARG: /* reference arg */
case LOC_REGPARM: /* register arg */ case LOC_REGPARM: /* register arg */
case LOC_REGPARM_ADDR: /* indirect register arg */ case LOC_REGPARM_ADDR: /* indirect register arg */
case LOC_BASEREG_ARG: /* basereg arg */
case LOC_COMPUTED_ARG: /* arg with computed location */ case LOC_COMPUTED_ARG: /* arg with computed location */
if (!locals) if (!locals)
print_me = 1; print_me = 1;
break; break;
case LOC_LOCAL: /* stack local */ case LOC_LOCAL: /* stack local */
case LOC_BASEREG: /* basereg local */
case LOC_STATIC: /* static */ case LOC_STATIC: /* static */
case LOC_REGISTER: /* register */ case LOC_REGISTER: /* register */
case LOC_COMPUTED: /* computed location */ case LOC_COMPUTED: /* computed location */

View file

@ -1041,7 +1041,6 @@ address_info (char *exp, int from_tty)
struct symbol *sym; struct symbol *sym;
struct minimal_symbol *msymbol; struct minimal_symbol *msymbol;
long val; long val;
long basereg;
asection *section; asection *section;
CORE_ADDR load_addr; CORE_ADDR load_addr;
int is_a_field_of_this; /* C++: lookup_symbol sets this to nonzero int is_a_field_of_this; /* C++: lookup_symbol sets this to nonzero
@ -1099,7 +1098,6 @@ address_info (char *exp, int from_tty)
current_language->la_language, DMGL_ANSI); current_language->la_language, DMGL_ANSI);
printf_filtered ("\" is "); printf_filtered ("\" is ");
val = SYMBOL_VALUE (sym); val = SYMBOL_VALUE (sym);
basereg = SYMBOL_BASEREG (sym);
section = SYMBOL_BFD_SECTION (sym); section = SYMBOL_BFD_SECTION (sym);
switch (SYMBOL_CLASS (sym)) switch (SYMBOL_CLASS (sym))
@ -1172,16 +1170,6 @@ address_info (char *exp, int from_tty)
printf_filtered (_("a reference argument at offset %ld"), val); printf_filtered (_("a reference argument at offset %ld"), val);
break; break;
case LOC_BASEREG:
printf_filtered (_("a variable at offset %ld from register %s"),
val, gdbarch_register_name (current_gdbarch, basereg));
break;
case LOC_BASEREG_ARG:
printf_filtered (_("an argument at offset %ld from register %s"),
val, gdbarch_register_name (current_gdbarch, basereg));
break;
case LOC_TYPEDEF: case LOC_TYPEDEF:
printf_filtered (_("a typedef")); printf_filtered (_("a typedef"));
break; break;

View file

@ -264,7 +264,6 @@ print_frame_args (struct symbol *func, struct frame_info *frame,
keep track of stack offsets in them. */ keep track of stack offsets in them. */
case LOC_REGPARM: case LOC_REGPARM:
case LOC_REGPARM_ADDR: case LOC_REGPARM_ADDR:
case LOC_BASEREG_ARG:
case LOC_COMPUTED_ARG: case LOC_COMPUTED_ARG:
break; break;
@ -1375,7 +1374,6 @@ print_block_frame_locals (struct block *b, struct frame_info *frame,
case LOC_LOCAL: case LOC_LOCAL:
case LOC_REGISTER: case LOC_REGISTER:
case LOC_STATIC: case LOC_STATIC:
case LOC_BASEREG:
case LOC_COMPUTED: case LOC_COMPUTED:
values_printed = 1; values_printed = 1;
for (j = 0; j < num_tabs; j++) for (j = 0; j < num_tabs; j++)
@ -1579,7 +1577,6 @@ print_frame_arg_vars (struct frame_info *frame, struct ui_file *stream)
case LOC_REF_ARG: case LOC_REF_ARG:
case LOC_REGPARM: case LOC_REGPARM:
case LOC_REGPARM_ADDR: case LOC_REGPARM_ADDR:
case LOC_BASEREG_ARG:
case LOC_COMPUTED_ARG: case LOC_COMPUTED_ARG:
values_printed = 1; values_printed = 1;
fputs_filtered (SYMBOL_PRINT_NAME (sym), stream); fputs_filtered (SYMBOL_PRINT_NAME (sym), stream);

View file

@ -668,16 +668,6 @@ print_symbol (void *args)
SYMBOL_VALUE (symbol)); SYMBOL_VALUE (symbol));
break; break;
case LOC_BASEREG:
fprintf_filtered (outfile, "local at 0x%lx from register %d",
SYMBOL_VALUE (symbol), SYMBOL_BASEREG (symbol));
break;
case LOC_BASEREG_ARG:
fprintf_filtered (outfile, "arg at 0x%lx from register %d",
SYMBOL_VALUE (symbol), SYMBOL_BASEREG (symbol));
break;
case LOC_TYPEDEF: case LOC_TYPEDEF:
break; break;

View file

@ -1959,7 +1959,6 @@ lookup_block_symbol (const struct block *block, const char *name,
SYMBOL_CLASS (sym) != LOC_REF_ARG && SYMBOL_CLASS (sym) != LOC_REF_ARG &&
SYMBOL_CLASS (sym) != LOC_REGPARM && SYMBOL_CLASS (sym) != LOC_REGPARM &&
SYMBOL_CLASS (sym) != LOC_REGPARM_ADDR && SYMBOL_CLASS (sym) != LOC_REGPARM_ADDR &&
SYMBOL_CLASS (sym) != LOC_BASEREG_ARG &&
SYMBOL_CLASS (sym) != LOC_COMPUTED_ARG) SYMBOL_CLASS (sym) != LOC_COMPUTED_ARG)
{ {
break; break;

View file

@ -485,25 +485,6 @@ enum address_class
LOC_CONST_BYTES, LOC_CONST_BYTES,
/* Value is at SYMBOL_VALUE offset from the current value of
register number SYMBOL_BASEREG. This exists mainly for the same
things that LOC_LOCAL and LOC_ARG do; but we need to do this
instead because on 88k DWARF gives us the offset from the
frame/stack pointer, rather than the offset from the "canonical
frame address" used by COFF, stabs, etc., and we don't know how
to convert between these until we start examining prologues.
Note that LOC_BASEREG is much less general than a DWARF expression.
We don't need the generality (at least not yet), and storing a general
DWARF expression would presumably take up more space than the existing
scheme. */
LOC_BASEREG,
/* Same as LOC_BASEREG but it is an argument. */
LOC_BASEREG_ARG,
/* Value is at fixed address, but the address of the variable has /* Value is at fixed address, but the address of the variable has
to be determined from the minimal symbol table whenever the to be determined from the minimal symbol table whenever the
variable is referenced. variable is referenced.
@ -611,8 +592,6 @@ struct symbol
union union
{ {
/* Used by LOC_BASEREG and LOC_BASEREG_ARG. */
short basereg;
/* An arbitrary data pointer. Note that this data must be /* An arbitrary data pointer. Note that this data must be
allocated using the same obstack as the symbol itself. */ allocated using the same obstack as the symbol itself. */
/* So far it is only used by LOC_COMPUTED and LOC_COMPUTED_ARG to /* So far it is only used by LOC_COMPUTED and LOC_COMPUTED_ARG to
@ -637,7 +616,6 @@ struct symbol
#define SYMBOL_TYPE(symbol) (symbol)->type #define SYMBOL_TYPE(symbol) (symbol)->type
#define SYMBOL_LINE(symbol) (symbol)->line #define SYMBOL_LINE(symbol) (symbol)->line
#define SYMBOL_SYMTAB(symbol) (symbol)->symtab #define SYMBOL_SYMTAB(symbol) (symbol)->symtab
#define SYMBOL_BASEREG(symbol) (symbol)->aux_value.basereg
#define SYMBOL_OPS(symbol) (symbol)->ops #define SYMBOL_OPS(symbol) (symbol)->ops
#define SYMBOL_LOCATION_BATON(symbol) (symbol)->aux_value.ptr #define SYMBOL_LOCATION_BATON(symbol) (symbol)->aux_value.ptr

View file

@ -1290,19 +1290,6 @@ collect_symbol (struct collection_list *collect,
} }
add_memrange (collect, reg, offset, len); add_memrange (collect, reg, offset, len);
break; break;
case LOC_BASEREG:
case LOC_BASEREG_ARG:
reg = SYMBOL_BASEREG (sym);
offset = SYMBOL_VALUE (sym);
if (info_verbose)
{
printf_filtered ("LOC_BASEREG %s: collect %ld bytes at offset ",
DEPRECATED_SYMBOL_NAME (sym), len);
printf_vma (offset);
printf_filtered (" from basereg %d\n", reg);
}
add_memrange (collect, reg, offset, len);
break;
case LOC_UNRESOLVED: case LOC_UNRESOLVED:
printf_filtered ("Don't know LOC_UNRESOLVED %s\n", printf_filtered ("Don't know LOC_UNRESOLVED %s\n",
DEPRECATED_SYMBOL_NAME (sym)); DEPRECATED_SYMBOL_NAME (sym));
@ -1338,7 +1325,6 @@ add_local_symbols (struct collection_list *collect, CORE_ADDR pc,
case LOC_LOCAL: case LOC_LOCAL:
case LOC_STATIC: case LOC_STATIC:
case LOC_REGISTER: case LOC_REGISTER:
case LOC_BASEREG:
if (type == 'L') /* collecting Locals */ if (type == 'L') /* collecting Locals */
{ {
count++; count++;
@ -1350,7 +1336,6 @@ add_local_symbols (struct collection_list *collect, CORE_ADDR pc,
case LOC_REF_ARG: case LOC_REF_ARG:
case LOC_REGPARM: case LOC_REGPARM:
case LOC_REGPARM_ADDR: case LOC_REGPARM_ADDR:
case LOC_BASEREG_ARG:
if (type == 'A') /* collecting Arguments */ if (type == 'A') /* collecting Arguments */
{ {
count++; count++;
@ -2491,18 +2476,6 @@ scope_info (char *args, int from_tty)
printf_filtered ("a function at address "); printf_filtered ("a function at address ");
printf_filtered ("%s", paddress (BLOCK_START (SYMBOL_BLOCK_VALUE (sym)))); printf_filtered ("%s", paddress (BLOCK_START (SYMBOL_BLOCK_VALUE (sym))));
break; break;
case LOC_BASEREG:
printf_filtered ("a variable at offset %ld from register $%s",
SYMBOL_VALUE (sym),
gdbarch_register_name
(current_gdbarch, SYMBOL_BASEREG (sym)));
break;
case LOC_BASEREG_ARG:
printf_filtered ("an argument at offset %ld from register $%s",
SYMBOL_VALUE (sym),
gdbarch_register_name
(current_gdbarch, SYMBOL_BASEREG (sym)));
break;
case LOC_UNRESOLVED: case LOC_UNRESOLVED:
msym = lookup_minimal_symbol (DEPRECATED_SYMBOL_NAME (sym), msym = lookup_minimal_symbol (DEPRECATED_SYMBOL_NAME (sym),
NULL, NULL); NULL, NULL);