From fc2f703edb656c69b0026a006c6063cdb255e06a Mon Sep 17 00:00:00 2001 From: Yao Qi Date: Fri, 9 Dec 2016 09:51:20 +0000 Subject: [PATCH] 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 * aarch64-tdep.c (instruction_reader::read): Call read_code_unsigned_integer instead of read_memory_unsigned_integer. --- gdb/ChangeLog | 6 ++++++ gdb/aarch64-tdep.c | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) 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 + * aarch64-tdep.c (instruction_reader::read): Call + read_code_unsigned_integer instead of + read_memory_unsigned_integer. + +2016-12-09 Yao Qi + * 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); } }; -- 2.7.4