labath added a comment.

Register infos in lldb are a mess. However lldb seems to be able to communicate 
(more or less successfully) with stub which know nothing about lldb or numbers 
it assigns to various registers. So it does not seem like there needs to be (or 
even _can_ be) one universal constant for a register in all situations.

IIUC, the problem is that on the server side the "invalidate" numbers are given 
in the form of the "lldb" register numbers, but on we don't send that number 
over -- instead lldb client makes it up (from the index).

Your patch fixes that by sending that number over explicitly. The thing I don't 
like about that is that it: a) increases the chance of things going wrong with 
non-lldb stubs; b) forks the code paths depending on whether one is talking to 
the old or new stub.

It seems to me like this could be solved in another way -- changing the meaning 
of the "invalidate" numbers to mean register indexes -- basically blessing the 
thing that the client is doing now. Since for the current targets the two 
numbers are the same, that should not make any functional difference, but it 
would make things work for SVE without forking anything or introducing new 
concepts. The translation could be done at the protocol level, just before 
sending the data over.

What do you think of that. Are there any downsides there?


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

https://reviews.llvm.org/D77043



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

Reply via email to