diff options
-rw-r--r-- | gdb/ChangeLog | 2 | ||||
-rw-r--r-- | gdb/frame.c | 5 |
2 files changed, 4 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 155c483..fbc6f10 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,7 +1,7 @@ 2008-09-24 Andreas Schwab <schwab@suse.de> * frame.c (get_frame_register_bytes): Take pseudo registers into - account. + account. Avoid excessive function calls. 2008-09-23 Doug Evans <dje@google.com> diff --git a/gdb/frame.c b/gdb/frame.c index 0fd21e4..a877494 100644 --- a/gdb/frame.c +++ b/gdb/frame.c @@ -798,6 +798,7 @@ get_frame_register_bytes (struct frame_info *frame, int regnum, struct gdbarch *gdbarch = get_frame_arch (frame); int i; int maxsize; + int numregs; /* Skip registers wholly inside of OFFSET. */ while (offset >= register_size (gdbarch, regnum)) @@ -809,8 +810,8 @@ get_frame_register_bytes (struct frame_info *frame, int regnum, /* Ensure that we will not read beyond the end of the register file. This can only ever happen if the debug information is bad. */ maxsize = -offset; - for (i = regnum; - i < gdbarch_num_regs (gdbarch) + gdbarch_num_pseudo_regs (gdbarch); i++) + numregs = gdbarch_num_regs (gdbarch) + gdbarch_num_pseudo_regs (gdbarch); + for (i = regnum; i < numregs; i++) { int thissize = register_size (gdbarch, i); if (thissize == 0) |