[lldb-dev] Skipping registers when restore register state after a function call

Pavel Labath via lldb-dev lldb-dev at lists.llvm.org
Tue Jul 18 02:49:34 PDT 2017


We've ran into the same issue when we were adding the "dynamic
register size" fields, which is mips thing. I think we need a more
flexible way of specifying the register context structs (constexpr
constructors?) which will not suffer from these issues.



On 14 July 2017 at 16:39, Tatyana Krasnukha
<Tatyana.Krasnukha at synopsys.com> wrote:
> Trying to add new field to RegisterInfo I ran into the problem that it requires modifying all hardcoded register infos (for each target's ABI and RegisterContext), despite almost all targets never need this field. Another decision is to add a set with such register names into DynamicRegisterInfo and skip restoring of a register if it exists in this set. This solution works for me as needed and it seems less invasive in terms of other targets. I can prepare a patch if you'll consider it useful.

If you're not planning to upstream any of your changes that depend on
this, then I think this patch is not really needed/useful for us. If
yes, then I suggest you put it up for review, and we'll need to have a
(possibly longer) discussion about whether this is the right way to
implement that.


More information about the lldb-dev mailing list