summaryrefslogtreecommitdiffstats
path: root/llvm/lib/DebugInfo/CodeView/EnumTables.cpp
diff options
context:
space:
mode:
authorHans Wennborg <hans@hanshq.net>2017-10-03 18:27:22 +0000
committerHans Wennborg <hans@hanshq.net>2017-10-03 18:27:22 +0000
commit660531085a5e8c1bd8253f4802eb056b91d14875 (patch)
treea7603ffe7177f8f63df1e883599d279b30e0fe67 /llvm/lib/DebugInfo/CodeView/EnumTables.cpp
parentfec6b1afe66ccfeff0c80c9ed0aea1f6daaf5832 (diff)
downloadbcm5719-llvm-660531085a5e8c1bd8253f4802eb056b91d14875.tar.gz
bcm5719-llvm-660531085a5e8c1bd8253f4802eb056b91d14875.zip
CodeView: Provide a .def file with the register ids
The list of register ids was previously written out in a couple of dirrent places. This puts it in a .def file and also adds a few more registers (e.g. the x87 regs) which should lead to more readable dumps, but I didn't include the whole list since that seems unnecessary. X86_MC::initLLVMToSEHAndCVRegMapping is pretty ugly, but at least it's not relying on magic constants anymore. The TODO of using tablegen still stands. Differential revision: https://reviews.llvm.org/D38480 llvm-svn: 314821
Diffstat (limited to 'llvm/lib/DebugInfo/CodeView/EnumTables.cpp')
-rw-r--r--llvm/lib/DebugInfo/CodeView/EnumTables.cpp52
1 files changed, 3 insertions, 49 deletions
diff --git a/llvm/lib/DebugInfo/CodeView/EnumTables.cpp b/llvm/lib/DebugInfo/CodeView/EnumTables.cpp
index e58d2f8a1d3..d8301cab165 100644
--- a/llvm/lib/DebugInfo/CodeView/EnumTables.cpp
+++ b/llvm/lib/DebugInfo/CodeView/EnumTables.cpp
@@ -33,55 +33,9 @@ static const EnumEntry<TypeLeafKind> TypeLeafNames[] = {
};
static const EnumEntry<uint16_t> RegisterNames[] = {
- CV_ENUM_CLASS_ENT(RegisterId, Unknown),
- CV_ENUM_CLASS_ENT(RegisterId, VFrame),
- CV_ENUM_CLASS_ENT(RegisterId, AL),
- CV_ENUM_CLASS_ENT(RegisterId, CL),
- CV_ENUM_CLASS_ENT(RegisterId, DL),
- CV_ENUM_CLASS_ENT(RegisterId, BL),
- CV_ENUM_CLASS_ENT(RegisterId, AH),
- CV_ENUM_CLASS_ENT(RegisterId, CH),
- CV_ENUM_CLASS_ENT(RegisterId, DH),
- CV_ENUM_CLASS_ENT(RegisterId, BH),
- CV_ENUM_CLASS_ENT(RegisterId, AX),
- CV_ENUM_CLASS_ENT(RegisterId, CX),
- CV_ENUM_CLASS_ENT(RegisterId, DX),
- CV_ENUM_CLASS_ENT(RegisterId, BX),
- CV_ENUM_CLASS_ENT(RegisterId, SP),
- CV_ENUM_CLASS_ENT(RegisterId, BP),
- CV_ENUM_CLASS_ENT(RegisterId, SI),
- CV_ENUM_CLASS_ENT(RegisterId, DI),
- CV_ENUM_CLASS_ENT(RegisterId, EAX),
- CV_ENUM_CLASS_ENT(RegisterId, ECX),
- CV_ENUM_CLASS_ENT(RegisterId, EDX),
- CV_ENUM_CLASS_ENT(RegisterId, EBX),
- CV_ENUM_CLASS_ENT(RegisterId, ESP),
- CV_ENUM_CLASS_ENT(RegisterId, EBP),
- CV_ENUM_CLASS_ENT(RegisterId, ESI),
- CV_ENUM_CLASS_ENT(RegisterId, EDI),
- CV_ENUM_CLASS_ENT(RegisterId, ES),
- CV_ENUM_CLASS_ENT(RegisterId, CS),
- CV_ENUM_CLASS_ENT(RegisterId, SS),
- CV_ENUM_CLASS_ENT(RegisterId, DS),
- CV_ENUM_CLASS_ENT(RegisterId, FS),
- CV_ENUM_CLASS_ENT(RegisterId, GS),
- CV_ENUM_CLASS_ENT(RegisterId, IP),
- CV_ENUM_CLASS_ENT(RegisterId, RAX),
- CV_ENUM_CLASS_ENT(RegisterId, RBX),
- CV_ENUM_CLASS_ENT(RegisterId, RCX),
- CV_ENUM_CLASS_ENT(RegisterId, RDX),
- CV_ENUM_CLASS_ENT(RegisterId, RSI),
- CV_ENUM_CLASS_ENT(RegisterId, RDI),
- CV_ENUM_CLASS_ENT(RegisterId, RBP),
- CV_ENUM_CLASS_ENT(RegisterId, RSP),
- CV_ENUM_CLASS_ENT(RegisterId, R8),
- CV_ENUM_CLASS_ENT(RegisterId, R9),
- CV_ENUM_CLASS_ENT(RegisterId, R10),
- CV_ENUM_CLASS_ENT(RegisterId, R11),
- CV_ENUM_CLASS_ENT(RegisterId, R12),
- CV_ENUM_CLASS_ENT(RegisterId, R13),
- CV_ENUM_CLASS_ENT(RegisterId, R14),
- CV_ENUM_CLASS_ENT(RegisterId, R15),
+#define CV_REGISTER(name, val) CV_ENUM_CLASS_ENT(RegisterId, name),
+#include "llvm/DebugInfo/CodeView/CodeViewRegisters.def"
+#undef CV_REGISTER
};
static const EnumEntry<uint32_t> PublicSymFlagNames[] = {
OpenPOWER on IntegriCloud