DavidSpickett added a comment.

> I have a feeling that expressions are becoming an expensive operation with 
> amount of data we need to move back and forth between various buffers. Is 
> there a way we can optimise this may be write register directly from source 
> buffer.

I don't know about expensive literally but I did wonder if we could rely on the 
NativeRegisterContextLinux_arm64 buffers not being modified while the 
expression runs. Then do what I think you mean which is just flush them all to 
the process.

I'll need to work out exactly when SaveAll/WriteAll is and can be called. Part 
of me wonders why we even have such methods if you could just flush the 
existing buffers, but it wouldn't be the first time we've duplicated things.

> Also how much minimum data we need to move when SME is enabled?

At minimum the SVE registers and the ZA header and tpidr2. So ~ (45*16) + 16 + 
16 + 8. If ZA is on then you've got another 16*16 on top of that.

But to be clear, the amount of data is not the issue this change aims to 
address, it's purely the ordering of the restoration.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D156687/new/

https://reviews.llvm.org/D156687

_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to