Add support for dwarf register numbering.
authorJim Laskey <jlaskey@mac.com>
Fri, 24 Mar 2006 21:13:21 +0000 (21:13 +0000)
committerJim Laskey <jlaskey@mac.com>
Fri, 24 Mar 2006 21:13:21 +0000 (21:13 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27080 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/Target.td

index 3fef70785c3028b927346f865903e6d1397215ba..4c846741caef0e362a030075c56760fa471c6ef5 100644 (file)
@@ -43,6 +43,13 @@ class Register<string n> {
   // registers.
   //
   list<Register> Aliases = [];
+  
+  // DwarfNumber - Number used internally by gcc/gdb to identify the register.
+  // These values can be determined by locating the <target>.h file in the
+  // directory llvmgcc/gcc/config/<target>/ and looking for REGISTER_NAMES.  The
+  // order of these names correspond to the enumeration used by gcc.  A value of
+  // -1 indicates that the gcc number is undefined.
+  int DwarfNumber = -1;
 }
 
 // RegisterGroup - This can be used to define instances of Register which
@@ -91,6 +98,20 @@ class RegisterClass<string namespace, list<ValueType> regTypes, int alignment,
 }
 
 
+//===----------------------------------------------------------------------===//
+// DwarfRegNum - This class provides a mapping of the llvm register enumeration
+// to the register numbering used by gcc and gdb.  These values are used by a
+// debug information writer (ex. DwarfWriter) to describe where values may be
+// located during execution.
+class DwarfRegNum<int N> {
+  // DwarfNumber - Number used internally by gcc/gdb to identify the register.
+  // These values can be determined by locating the <target>.h file in the
+  // directory llvmgcc/gcc/config/<target>/ and looking for REGISTER_NAMES.  The
+  // order of these names correspond to the enumeration used by gcc.  A value of
+  // -1 indicates that the gcc number is undefined.
+  int DwarfNumber = N;
+}
+
 //===----------------------------------------------------------------------===//
 // Pull in the common support for scheduling
 //