When JITs generate code without unwind information, it may be possible
to continue unwinding via RBP chaining. However, we currently disallow
RBP==RSP condition even though we can make forward progress.
Relax the check a bit in the code where we switch from one type of
unwinding to another to handle this situation. JIT authors
are encouraged to use the dynamic unwind info registration API when
the underlying platform supports it.
Signed-off-by: Kevin Modzelewski <kmod@dropbox.com>
anything about new RBP (rbp1) since it may not be a frame
pointer in the frame above. Just check we get the value. */
if (ret < 0
- || rbp <= c->dwarf.cfa
+ || rbp < c->dwarf.cfa
|| (rbp - c->dwarf.cfa) > 0x4000)
{
rip_loc = DWARF_NULL_LOC;