GDB (s12z): Improve reliability of the stack unwinder.
authorJohn Darrington <john@darrington.wattle.id.au>
Wed, 15 May 2019 04:47:16 +0000 (06:47 +0200)
committerJohn Darrington <john@darrington.wattle.id.au>
Wed, 15 May 2019 04:50:40 +0000 (06:50 +0200)
commitc5358db468d582e658488c2bcc1befe6e6e47366
treec7ace12b2a6359748e31601ff78edbc7a485b9a9
parente48371ffd5f89a9ceecd6e814b69e26609fd8402
GDB (s12z): Improve reliability of the stack unwinder.

Previously, the stack unwinder searched through consecutive bytes for values
which it thought might be the start of a stack mutating operation.
This was error prone, because such bytes could also be the operands of other
instructions.  This change uses the opcodes api to interpret the code in each
frame.

gdb/ChangeLog:
* s12z-tdep.c (push_pull_get_stack_adjustment): New function.
(advance, posn, abstract_read_memory): New functions.
[struct mem_read_abstraction]: New struct.
(s12z_frame_cache): Use opcodes API to interpret stack frame code.
gdb/ChangeLog
gdb/s12z-tdep.c