Some platforms use the same name for 32-bit and 64-bit registers (like

%r3 on PPC) in their ASM files. However, it's hard for humans to read
during debugging. Adding a new field to the register data that lets you
specify a different name to be printed than the one that goes into the
ASM file -- %x3 instead of %r3, for instance.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47534 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Bill Wendling
2008-02-24 00:56:13 +00:00
parent 1df439773c
commit 181eb737b2
5 changed files with 58 additions and 39 deletions

View File

@@ -512,7 +512,7 @@ void RegisterInfoEmitter::run(std::ostream &OS) {
}
OS<<"\n const TargetRegisterDesc RegisterDescriptors[] = { // Descriptors\n";
OS << " { \"NOREG\",\t0,\t0,\t0,\t0 },\n";
OS << " { \"NOREG\",\t\"NOREG\",\t0,\t0,\t0,\t0 },\n";
// Now that register alias and sub-registers sets have been emitted, emit the
// register descriptors now.
@@ -524,6 +524,16 @@ void RegisterInfoEmitter::run(std::ostream &OS) {
OS << Reg.TheDef->getValueAsString("Name");
else
OS << Reg.getName();
OS << "\",\t\"";
if (!Reg.TheDef->getValueAsString("PrintableName").empty()) {
OS << Reg.TheDef->getValueAsString("PrintableName");
} else {
// Default to "name".
if (!Reg.TheDef->getValueAsString("Name").empty())
OS << Reg.TheDef->getValueAsString("Name");
else
OS << Reg.getName();
}
OS << "\",\t";
if (RegisterAliases.count(Reg.TheDef))
OS << Reg.getName() << "_AliasSet,\t";