History log of /external/lldb/source/Plugins/Process/Utility/InstructionUtils.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
061b79dbf1fefaf157d414747e98a463a0f32eda 09-May-2011 Greg Clayton <gclayton@apple.com> While implementing unwind information using UnwindAssemblyInstEmulation I ran
into some cleanup I have been wanting to do when reading/writing registers.
Previously all RegisterContext subclasses would need to implement:

virtual bool
ReadRegisterBytes (uint32_t reg, DataExtractor &data);

virtual bool
WriteRegisterBytes (uint32_t reg, DataExtractor &data, uint32_t data_offset = 0);

There is now a new class specifically designed to hold register values:
lldb_private::RegisterValue

The new register context calls that subclasses must implement are:

virtual bool
ReadRegister (const RegisterInfo *reg_info, RegisterValue &reg_value) = 0;

virtual bool
WriteRegister (const RegisterInfo *reg_info, const RegisterValue &reg_value) = 0;

The RegisterValue class must be big enough to handle any register value. The
class contains an enumeration for the value type, and then a union for the
data value. Any integer/float values are stored directly in an appropriate
host integer/float. Anything bigger is stored in a byte buffer that has a length
and byte order. The RegisterValue class also knows how to copy register value
bytes into in a buffer with a specified byte order which can be used to write
the register value down into memory, and this does the right thing when not
all bytes from the register values are needed (getting a uint8 from a uint32
register value..).

All RegiterContext and other sources have been switched over to using the new
regiter value class.




git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@131096 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/Utility/InstructionUtils.h
bf5a66b583ecf050cf82a6bbe7f284863670968a 31-Mar-2011 Caroline Tice <ctice@apple.com> Add "Bits64" utility function.

Add code to emulate VSTM ARM instruction (store multiple floating point registers).



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@128609 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/Utility/InstructionUtils.h
7da805cfe3431e78c1a91fb14aa92abe819f3c9c 12-Feb-2011 Johnny Chen <johnny.chen@apple.com> Changed comments of some functions to be consistent with existing ones.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125423 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/Utility/InstructionUtils.h
f558860c35555af05945f9b4428e685fd5006092 12-Feb-2011 Johnny Chen <johnny.chen@apple.com> Add a couple of utility functions plus some comments.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125416 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/Utility/InstructionUtils.h
c3a38ead9d30e0cab7d0051008bca3b1f4c95714 10-Feb-2011 Johnny Chen <johnny.chen@apple.com> Cleaned up some parameter types and names.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125313 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/Utility/InstructionUtils.h
bd599907c7c6203e02123d825d1df017ce58f653 10-Feb-2011 Johnny Chen <johnny.chen@apple.com> Namings are important. Renamed Bits32(const uint32_t val, uint32_t bit) to Bit32(val, bit) and
SetBits32(uint32_t &bits, uint32_t bit, uint32_t val) to SetBit32(bits, bit, val).


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125312 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/Utility/InstructionUtils.h
338bf54a49633d90f3c5e808847470901f25dee9 10-Feb-2011 Johnny Chen <johnny.chen@apple.com> Add a generic EmulateMovRdRm() method and modify/add entries to the g_thumb_opcodes
table. Also add some more defines and convenience functions.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125300 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/Utility/InstructionUtils.h
930704795c783e5bf1768a43da6f957108b40873 05-Feb-2011 Johnny Chen <johnny.chen@apple.com> Add a utility class ITSession to maintain the ITState for the Thumb ISA.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@124906 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/Utility/InstructionUtils.h
108d5aaa1379f154e459d82aa482b4f2ddf134c7 26-Jan-2011 Johnny Chen <johnny.chen@apple.com> Move the generic instruction bits manipulation routines into a newly created file
named InstructionUtils.h and modify some existing code to use them.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@124259 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Plugins/Process/Utility/InstructionUtils.h