diff options
Diffstat (limited to 'lldb/source/Plugins/ArchVolatileRegs/x86/ArchVolatileRegs-x86.h')
| -rw-r--r-- | lldb/source/Plugins/ArchVolatileRegs/x86/ArchVolatileRegs-x86.h | 68 |
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_ |

