clayborg added a comment.

GDB remote protocol specifies that register values are sent in target byte 
order. We shouldn't change this. A big endian system should not send things as 
little endian. That being said, the current register context assumes you have a 
buffer that can contain all registers and that buffer is encoded using the byte 
order that is specified in the DataExtractor.

It is also quite silly that the MIPS register context is reading all registers 
from the ptrace wrapper just to get one single register. RegisterContextDarwin 
reads all GPRs in a single call and marks all of them valid at once and then 
extracting a register goes something like:

if (RegisterIsGPR(value.info))
{

  ReadGPRsIfWeAlreadyHavent();
  // Extract register from buffer.

}
else if (RegiserIsFPU(value.info))
{

  ReadFPUsIfWeAlreadyHavent();
  // Extract register from buffer.

}

etc..


Repository:
  rL LLVM

http://reviews.llvm.org/D14633



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

Reply via email to