summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/ArchVolatileRegs/x86/ArchVolatileRegs-x86.h
diff options
context:
space:
mode:
authorGreg Clayton <gclayton@apple.com>2011-04-25 21:05:07 +0000
committerGreg Clayton <gclayton@apple.com>2011-04-25 21:05:07 +0000
commitffc922e3891002f2668ca8cd9a38f250c7532a93 (patch)
treea7e86f22750e668a02fb69f00f259650caaf04ac /lldb/source/Plugins/ArchVolatileRegs/x86/ArchVolatileRegs-x86.h
parent50686bf55c340c5cf190745ed92efb2428b76b76 (diff)
downloadbcm5719-llvm-ffc922e3891002f2668ca8cd9a38f250c7532a93.tar.gz
bcm5719-llvm-ffc922e3891002f2668ca8cd9a38f250c7532a93.zip
More moving things around for the unwind plan and assembly unwind plug-ins.
llvm-svn: 130154
Diffstat (limited to 'lldb/source/Plugins/ArchVolatileRegs/x86/ArchVolatileRegs-x86.h')
-rw-r--r--lldb/source/Plugins/ArchVolatileRegs/x86/ArchVolatileRegs-x86.h68
1 files changed, 68 insertions, 0 deletions
diff --git a/lldb/source/Plugins/ArchVolatileRegs/x86/ArchVolatileRegs-x86.h b/lldb/source/Plugins/ArchVolatileRegs/x86/ArchVolatileRegs-x86.h
new file mode 100644
index 00000000000..70e1d202672
--- /dev/null
+++ b/lldb/source/Plugins/ArchVolatileRegs/x86/ArchVolatileRegs-x86.h
@@ -0,0 +1,68 @@
+//===-- ArchVolatileRegs-x86.h ----------------------------------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef liblldb_ArchVolatileRegs_x86_h_
+#define liblldb_ArchVolatileRegs_x86_h_
+
+#include "lldb/lldb-private.h"
+#include "lldb/Core/ArchSpec.h"
+#include "lldb/Target/ArchVolatileRegs.h"
+#include <set>
+
+namespace lldb_private {
+
+class ArchVolatileRegs_x86 : public lldb_private::ArchVolatileRegs
+{
+public:
+
+ ~ArchVolatileRegs_x86 () { }
+
+ bool
+ RegisterIsVolatile (lldb_private::Thread& thread, uint32_t regnum);
+
+ static lldb_private::ArchVolatileRegs *
+ CreateInstance (const lldb_private::ArchSpec &arch);
+
+ //------------------------------------------------------------------
+ // PluginInterface protocol
+ //------------------------------------------------------------------
+ static void
+ Initialize();
+
+ static void
+ Terminate();
+
+ static const char *
+ GetPluginNameStatic();
+
+ static const char *
+ GetPluginDescriptionStatic();
+
+ virtual const char *
+ GetPluginName();
+
+ virtual const char *
+ GetShortPluginName();
+
+ virtual uint32_t
+ GetPluginVersion();
+
+private:
+ ArchVolatileRegs_x86(llvm::Triple::ArchType cpu); // Call CreateInstance instead.
+
+ void initialize_regset(lldb_private::Thread& thread);
+
+ llvm::Triple::ArchType m_cpu;
+ std::set<int> m_non_volatile_regs;
+};
+
+
+} // namespace lldb_private
+
+#endif // liblldb_ArchVolatileRegs_x86_h_
OpenPOWER on IntegriCloud