arc: Add prologue analysis
authorAnton Kolesov <Anton.Kolesov@synopsys.com>
Fri, 10 Feb 2017 11:12:09 +0000 (14:12 +0300)
committerAnton Kolesov <Anton.Kolesov@synopsys.com>
Tue, 28 Mar 2017 18:38:32 +0000 (21:38 +0300)
commitfe5f7374bef8f23ffa0fe0dee0f9b05e0a218a29
tree40198df426b808a11314c42fa6754c09681a8062
parenteea787570f708e51048f812808e6cbd76fde6919
arc: Add prologue analysis

Add a prologue analysis that recognizes all instructions that may happen in
compiler-generated prologue, including various stores, core register moves,
subtraction and ENTER_S instruction that does a lot of prologue actions through
microcode.

Testcases cover various prologue scenarios, including instructions that are
spread across multiple 16-bit encodings (for example there are 7 encodings of
store instruction).

gdb/ChangeLog:

yyyy-mm-dd  Anton Kolesov  <anton.kolesov@synopsys.com>

* arc-tdep.c (arc_frame_cache): Add support for prologue analysis.
(arc_skip_prologue): Likewise.
(arc_make_frame_cache): Likewise.
(arc_pv_get_operand): New function.
(arc_is_in_prologue): Likewise.
(arc_analyze_prologue): Likewise.
(arc_print_frame_cache): Likewise.
(MAX_PROLOGUE_LENGTH): New constant.

gdb/doc/ChangeLog:

yyyy-mm-dd  Anton Kolesov  <anton.kolesov@synopsys.com>

* gdb.texinfo (Synopsys ARC): Document "set debug arc 2".

gdb/testsuite/ChangeLog:

yyyy-mm-dd  Anton Kolesov  <anton.kolesov@synopsys.com>

* gdb.arch/arc-analyze-prologue.S: New file.
* gdb.arch/arc-analyze-prologue.exp: Likewise.
gdb/ChangeLog
gdb/arc-tdep.c
gdb/doc/ChangeLog
gdb/doc/gdb.texinfo
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.arch/arc-analyze-prologue.S [new file with mode: 0644]
gdb/testsuite/gdb.arch/arc-analyze-prologue.exp [new file with mode: 0644]