<rdar://problem/13020634>
authorGreg Clayton <gclayton@apple.com>
Mon, 21 Jan 2013 22:17:50 +0000 (22:17 +0000)
committerGreg Clayton <gclayton@apple.com>
Mon, 21 Jan 2013 22:17:50 +0000 (22:17 +0000)
commitce1ffcf8a2b104f688b511d60f18b0fe2b1645d0
tree9325073ae92aa664cc6952879f70ed049ecfcd7d
parent304f6f0a5900c1ce06c2b26416dae56143f20147
<rdar://problem/13020634>

Fixed the 32, 16, and 8 bit pseudo regs for x86_64 (real reg of "rax" which subvalues "eax", "ax", etc...) to correctly get updated when stepping. Also fixed it so actual registers can specify what other registers must be invalidated when a register is modified. Previously, only pseudo registers could invalidate other registers.

Modified the LLDB qRegisterInfo extension to the GDB remote interface to support specifying the containing registers with the new "container-regs" key whose value is a comma separated list of register numbers. Also added a "invalidate-regs" key whose value is also a comma separated list of register numbers.

Removed the hack GDBRemoteDynamicRegisterInfo::Addx86_64ConvenienceRegisters() function and modified "debugserver" to specify the registers correctly using the new "container-regs" and "invalidate-regs" keys.

llvm-svn: 173096
lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp
lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.h
lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
lldb/tools/debugserver/source/DNBDefs.h
lldb/tools/debugserver/source/MacOSX/x86_64/DNBArchImplX86_64.cpp
lldb/tools/debugserver/source/RNBRemote.cpp