//===---------------------ArchVolatileRegs.h----- ---------------*- C++ -*-===//
//
//                     The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//

#ifndef utility_ArchVolatileRegs_h_
#define utility_ArchVolatileRegs_h_

#include "lldb/lldb-private.h"
#include "lldb/Core/PluginInterface.h"

namespace lldb_private {

class ArchVolatileRegs :
   public PluginInterface
{
public:

    virtual
    ~ArchVolatileRegs();

    // Given a register number (in the eRegisterKindLLDB register numbering 
    // scheme), returns true if the register is defined to be "volatile" in
    // this architecture -- that is, a function is not required to preserve
    // the contents of the register.  
    // If r8 is defined to be volatile, it means that a function can put 
    // values in that register without saving the previous contents.
    // If r8 is defined to be non-volatile (preseved), a function must save
    // the value in the register before it is used.

    // The thread reference is needed to get a RegisterContext to look up by
    // register names.  

    virtual bool
    RegisterIsVolatile (lldb_private::Thread& thread, uint32_t regnum) = 0;

    static ArchVolatileRegs*
    FindPlugin (const ArchSpec &arch);

protected:
    ArchVolatileRegs();
private:
    DISALLOW_COPY_AND_ASSIGN (ArchVolatileRegs);
};

} // namespace lldb_private

#endif //utility_ArchVolatileRegs_h_

