================
@@ -97,6 +97,8 @@ ThreadElfCore::CreateRegisterContextForFrame(StackFrame
*frame) {
case llvm::Triple::ppc64le:
reg_interface = new RegisterContextFreeBSD_powerpc64(arch);
break;
+ case llvm::Triple::riscv64:
+ break;
----------------
DavidSpickett wrote:
Yes.
As far as I can tell, the conversion functions exist only for
ReadAllRegisterValues and WriteAllRegisterValues.
NativeRegisterContextFreeBSD_riscv64::ReadAllRegisterValues calls
FreeBSDToPOSIXGPR and FreeBSDToPOSIXFPR.
NativeRegisterContextFreeBSD_riscv64::WriteAllRegisterValues calls
POSIXToFreeBSDGPR and POSIXToFreeBSDFPR.
These return, and use, a DataBufferSP. ReadAllRegisterValues is called by
GDBRemoteCommunicationServerLLGS::Handle_QSaveRegisterState which inserts the
SP into a map m_saved_registers_map. All it does with this is pull the SP back
out when asked to write all register values.
So I think that you could use the FreeBSD format here because no one tries to
look inside the saved data. The FreeBSD plugin can return its own format, and
will get back data in its own format.
If I'm correct, it's still worth adding a note in the header next to these two
functions that the data is in a format you wouldn't expect. Just in case we
later try to start poking into these saved register sets (which sounds like a
bad idea anyway).
https://github.com/llvm/llvm-project/pull/180549
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits