[Lldb-commits] [lldb] r222774 - Add some more comments explaining the purpose of some Register classes.

Zachary Turner zturner at google.com
Tue Nov 25 11:02:48 PST 2014


Author: zturner
Date: Tue Nov 25 13:02:47 2014
New Revision: 222774

URL: http://llvm.org/viewvc/llvm-project?rev=222774&view=rev
Log:
Add some more comments explaining the purpose of some Register classes.

Modified:
    lldb/trunk/include/lldb/lldb-private-types.h

Modified: lldb/trunk/include/lldb/lldb-private-types.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/lldb-private-types.h?rev=222774&r1=222773&r2=222774&view=diff
==============================================================================
--- lldb/trunk/include/lldb/lldb-private-types.h (original)
+++ lldb/trunk/include/lldb/lldb-private-types.h Tue Nov 25 13:02:47 2014
@@ -29,12 +29,20 @@ namespace lldb_private
         const char *name;        // Name of this register, can't be NULL
         const char *alt_name;    // Alternate name of this register, can be NULL
         uint32_t byte_size;      // Size in bytes of the register
-        uint32_t byte_offset;    // The byte offset in the register context data where this register's value is found
+        uint32_t byte_offset;    // The byte offset in the register context data where this register's value is found.
+                                 // This is optional, and can be 0 if a particular RegisterContext does not need to
+                                 // address its registers by byte offset.
         lldb::Encoding encoding; // Encoding of the register bits
         lldb::Format format;     // Default display format
         uint32_t kinds[lldb::kNumRegisterKinds]; // Holds all of the various register numbers for all register kinds
-        uint32_t *value_regs;    // List of registers that must be terminated with LLDB_INVALID_REGNUM
-        uint32_t *invalidate_regs; // List of registers that must be invalidated when this register is modified, list must be terminated with LLDB_INVALID_REGNUM
+        uint32_t *value_regs;      // List of registers (terminated with LLDB_INVALID_REGNUM).  If this value is not
+                                   // null, all registers in this list will be read first, at which point the value 
+                                   // for this register will be valid.  For example, the value list for ah
+                                   // would be eax (x86) or rax (x64).
+        uint32_t *invalidate_regs; // List of registers (terminated with LLDB_INVALID_REGNUM).  If this value is not
+                                   // null, all registers in this list will be invalidateed when the value of this
+                                   // register changes.  For example, the invalidate list for eax would be rax
+                                   // ax, ah, and al.
     } RegisterInfo;
 
     //----------------------------------------------------------------------
@@ -45,7 +53,11 @@ namespace lldb_private
         const char *name;           // Name of this register set
         const char *short_name;     // A short name for this register set
         size_t num_registers;       // The number of registers in REGISTERS array below
-        const uint32_t *registers;  // An array of register numbers in this set
+        const uint32_t *registers;  // An array of register indices in this set.  The values in this array are
+                                    // *indices* (not register numbers) into a particular RegisterContext's
+                                    // register array.  For example, if eax is defined at index 4 for a
+                                    // particular RegisterContext, eax would be included in this RegisterSet
+                                    // by adding the value 4.  Not by adding the value lldb_eax_i386.
     } RegisterSet;
 
     typedef struct





More information about the lldb-commits mailing list