I like that idea. A bunch of other work just landed on my desk so it might be
a bit before I do it, but I'll see how that patch looks.
> On Nov 9, 2016, at 3:54 AM, Tamas Berghammer wrote:
>
> Based on your comments I have one more idea for a good heuristic. What if we
> detect a dynamic bran
Based on your comments I have one more idea for a good heuristic. What if
we detect a dynamic branch (e.g. "br ", "tbb ...", etc...) and store
the register state for that place. Then when we find a block with no unwind
info for the first instruction then we use the one we saved for the dynamic
bran
Yeah I was thinking that maybe if we spot an epilogue instruction (ret, b
), and the next instruction doesn't have a reinstated
register context, we could backtrack to the initial register context of this
block of instructions (and if it's not the beginning of the function),
re-instate that reg
Hi Jason,
I thought about this situation when implemented the original branch
following code and haven't been able to come up with a really good solution.
My only idea is the same what you mentioned. We should try to recognize all
unconditional branches and returns (but not calls) and then if the
Hi Tamas & Pavel, I thought you might have some ideas so I wanted to show a
problem I'm looking at right now. The arm64 instruction unwinder forwards the
unwind state based on branch instructions within the function. So if one block
of code ends in an epilogue, the next instruction (which is p