diff options
author | Yao Qi <yao.qi@linaro.org> | 2016-12-09 09:51:20 +0000 |
---|---|---|
committer | Yao Qi <yao.qi@linaro.org> | 2016-12-09 09:51:20 +0000 |
commit | fc2f703edb656c69b0026a006c6063cdb255e06a (patch) | |
tree | 5169d18aa6acb1c9a56eb89f270efc7d8ede49b2 | |
parent | 198cd59d289209ad63cdd6da45e02a1c12b423a7 (diff) | |
download | gdb-fc2f703edb656c69b0026a006c6063cdb255e06a.zip gdb-fc2f703edb656c69b0026a006c6063cdb255e06a.tar.gz gdb-fc2f703edb656c69b0026a006c6063cdb255e06a.tar.bz2 |
Use code cache in aarch64 prologue analyzer
This patch change aarch prologue analyzer using code cache, in order
to improve the performance of remote debugging.
gdb.perf/skip-prologue.exp (measured by wall-time) is improved when
the program is compiled without debug information.
Original Patched Original Patched
without dbg without dbg with dbg with dbg
/ 11.1635239124 9.99472999573 9.65339517593 9.66648793221
-fstack-protector-all 11.2560930252 9.338118 9.63896489143 9.59474396706
gdb:
2016-12-9 Yao Qi <yao.qi@linaro.org>
* aarch64-tdep.c (instruction_reader::read): Call
read_code_unsigned_integer instead of
read_memory_unsigned_integer.
-rw-r--r-- | gdb/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/aarch64-tdep.c | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index cd5a9ea..4b268f5 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,11 @@ 2016-12-09 Yao Qi <yao.qi@linaro.org> + * aarch64-tdep.c (instruction_reader::read): Call + read_code_unsigned_integer instead of + read_memory_unsigned_integer. + +2016-12-09 Yao Qi <yao.qi@linaro.org> + * arm-tdep.c (skip_prologue_function): Call read_code_unsigned_integer instead of read_memory_unsigned_integer. diff --git a/gdb/aarch64-tdep.c b/gdb/aarch64-tdep.c index 590dcf6..0175630 100644 --- a/gdb/aarch64-tdep.c +++ b/gdb/aarch64-tdep.c @@ -213,7 +213,7 @@ class instruction_reader : public abstract_instruction_reader public: ULONGEST read (CORE_ADDR memaddr, int len, enum bfd_endian byte_order) { - return read_memory_unsigned_integer (memaddr, len, byte_order); + return read_code_unsigned_integer (memaddr, len, byte_order); } }; |