diff options
author | Andreas Schwab <schwab@linux-m68k.org> | 2008-09-24 12:59:49 +0000 |
---|---|---|
committer | Andreas Schwab <schwab@linux-m68k.org> | 2008-09-24 12:59:49 +0000 |
commit | 68e007ca21d4d375218ff1accd4678dbb31769e0 (patch) | |
tree | 9ffaa56c0a00db6401194c03ad7f355d6c7615f0 | |
parent | 45ef8ce0c5323bee1881972b0b3250e7666df102 (diff) | |
download | gdb-68e007ca21d4d375218ff1accd4678dbb31769e0.zip gdb-68e007ca21d4d375218ff1accd4678dbb31769e0.tar.gz gdb-68e007ca21d4d375218ff1accd4678dbb31769e0.tar.bz2 |
* frame.c (get_frame_register_bytes): Avoid excessive function calls.
-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) |