* alpha-tdep.c (alpha_register_name): Use ARRAY_SIZE.

(alpha_read_insn, alpha_skip_prologue, alpha_heuristic_proc_start)
(alpha_heuristic_frame_unwind_cache, alpha_next_pc)
(alpha_gdbarch_init): Use ALPHA_INSN_SIZE, ALPHA_REGISTER_SIZE and
sizeof, instead of hardcoded constants.
This commit is contained in:
Mark Kettenis 2007-01-04 20:49:28 +00:00
parent 381bc39bef
commit e8d2d62824
2 changed files with 24 additions and 16 deletions

View File

@ -1,3 +1,11 @@
2007-01-04 Mark Kettenis <kettenis@gnu.org>
* alpha-tdep.c (alpha_register_name): Use ARRAY_SIZE.
(alpha_read_insn, alpha_skip_prologue, alpha_heuristic_proc_start)
(alpha_heuristic_frame_unwind_cache, alpha_next_pc)
(alpha_gdbarch_init): Use ALPHA_INSN_SIZE, ALPHA_REGISTER_SIZE and
sizeof, instead of hardcoded constants.
2007-01-04 Daniel Jacobowitz <dan@codesourcery.com>
* CONTRIBUTE: Use sourceware.org.

View File

@ -73,7 +73,7 @@ alpha_register_name (int regno)
if (regno < 0)
return NULL;
if (regno >= (sizeof(register_names) / sizeof(*register_names)))
if (regno >= ARRAY_SIZE(register_names))
return NULL;
return register_names[regno];
}
@ -640,13 +640,13 @@ alpha_after_prologue (CORE_ADDR pc)
unsigned int
alpha_read_insn (CORE_ADDR pc)
{
gdb_byte buf[4];
gdb_byte buf[ALPHA_INSN_SIZE];
int status;
status = read_memory_nobpt (pc, buf, 4);
status = read_memory_nobpt (pc, buf, sizeof (buf));
if (status)
memory_error (status, pc);
return extract_unsigned_integer (buf, 4);
return extract_unsigned_integer (buf, sizeof (buf));
}
/* To skip prologues, I use this predicate. Returns either PC itself
@ -662,7 +662,7 @@ alpha_skip_prologue (CORE_ADDR pc)
unsigned long inst;
int offset;
CORE_ADDR post_prologue_pc;
gdb_byte buf[4];
gdb_byte buf[ALPHA_INSN_SIZE];
/* Silently return the unaltered pc upon memory errors.
This could happen on OSF/1 if decode_line_1 tries to skip the
@ -671,7 +671,7 @@ alpha_skip_prologue (CORE_ADDR pc)
Reading target memory is slow over serial lines, so we perform
this check only if the target has shared libraries (which all
Alpha targets do). */
if (target_read_memory (pc, buf, 4))
if (target_read_memory (pc, buf, sizeof (buf)))
return pc;
/* See if we can determine the end of the prologue via the symbol table.
@ -688,7 +688,7 @@ alpha_skip_prologue (CORE_ADDR pc)
/* Skip the typical prologue instructions. These are the stack adjustment
instruction and the instructions that save registers on the stack
or in the gcc frame. */
for (offset = 0; offset < 100; offset += 4)
for (offset = 0; offset < 100; offset += ALPHA_INSN_SIZE)
{
inst = alpha_read_insn (pc + offset);
@ -946,7 +946,7 @@ alpha_heuristic_proc_start (CORE_ADDR pc)
/* Search back for previous return; also stop at a 0, which might be
seen for instance before the start of a code section. Don't include
nops, since this usually indicates padding between functions. */
for (pc -= 4; pc >= fence; pc -= 4)
for (pc -= ALPHA_INSN_SIZE; pc >= fence; pc -= ALPHA_INSN_SIZE)
{
unsigned int insn = alpha_read_insn (pc);
switch (insn)
@ -1028,7 +1028,7 @@ alpha_heuristic_frame_unwind_cache (struct frame_info *next_frame,
if (start_pc + 200 < limit_pc)
limit_pc = start_pc + 200;
for (cur_pc = start_pc; cur_pc < limit_pc; cur_pc += 4)
for (cur_pc = start_pc; cur_pc < limit_pc; cur_pc += ALPHA_INSN_SIZE)
{
unsigned int word = alpha_read_insn (cur_pc);
@ -1137,7 +1137,7 @@ alpha_heuristic_frame_unwind_cache (struct frame_info *next_frame,
break;
}
cur_pc += 4;
cur_pc += ALPHA_INSN_SIZE;
}
}
}
@ -1396,7 +1396,7 @@ alpha_next_pc (CORE_ADDR pc)
int regno;
int offset;
LONGEST rav;
gdb_byte reg[8];
gdb_byte reg[ALPHA_REGISTER_SIZE];
insn = alpha_read_insn (pc);
@ -1421,8 +1421,8 @@ alpha_next_pc (CORE_ADDR pc)
offset = (insn & 0x001fffff);
if (offset & 0x00100000)
offset |= 0xffe00000;
offset *= 4;
return (pc + 4 + offset);
offset *= ALPHA_INSN_SIZE;
return (pc + ALPHA_INSN_SIZE + offset);
}
/* Need to determine if branch is taken; read RA. */
@ -1439,7 +1439,7 @@ alpha_next_pc (CORE_ADDR pc)
}
regcache_cooked_read (current_regcache, regno, reg);
rav = extract_signed_integer (reg, 8);
rav = extract_signed_integer (reg, ALPHA_REGISTER_SIZE);
switch (op)
{
@ -1507,7 +1507,7 @@ alpha_next_pc (CORE_ADDR pc)
/* Not a branch or branch not taken; target PC is:
pc + 4 */
return (pc + 4);
return (pc + ALPHA_INSN_SIZE);
}
void
@ -1625,7 +1625,7 @@ alpha_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target);
set_gdbarch_breakpoint_from_pc (gdbarch, alpha_breakpoint_from_pc);
set_gdbarch_decr_pc_after_break (gdbarch, 4);
set_gdbarch_decr_pc_after_break (gdbarch, ALPHA_INSN_SIZE);
set_gdbarch_cannot_step_breakpoint (gdbarch, 1);
/* Hook in ABI-specific overrides, if they have been registered. */