diff options
-rw-r--r-- | lib/Target/Target.td | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/lib/Target/Target.td b/lib/Target/Target.td index 3fef70785c..4c846741ca 100644 --- a/lib/Target/Target.td +++ b/lib/Target/Target.td @@ -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 @@ -92,6 +99,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 // include "../TargetSchedule.td" |